///
/// Copyright (c) 2016 Dropbox, Inc. All rights reserved.
///
/// Auto-generated by Stone, do not modify.
///

#import "DBFILESAppAuthRoutes.h"
#import "DBASYNCLaunchResultBase.h"
#import "DBASYNCPollArg.h"
#import "DBASYNCPollError.h"
#import "DBASYNCPollResultBase.h"
#import "DBFILEPROPERTIESAddPropertiesArg.h"
#import "DBFILEPROPERTIESAddPropertiesError.h"
#import "DBFILEPROPERTIESGetTemplateArg.h"
#import "DBFILEPROPERTIESGetTemplateResult.h"
#import "DBFILEPROPERTIESInvalidPropertyGroupError.h"
#import "DBFILEPROPERTIESListTemplateResult.h"
#import "DBFILEPROPERTIESLookUpPropertiesError.h"
#import "DBFILEPROPERTIESLookupError.h"
#import "DBFILEPROPERTIESOverwritePropertyGroupArg.h"
#import "DBFILEPROPERTIESPropertiesError.h"
#import "DBFILEPROPERTIESPropertyFieldTemplate.h"
#import "DBFILEPROPERTIESPropertyGroup.h"
#import "DBFILEPROPERTIESPropertyGroupTemplate.h"
#import "DBFILEPROPERTIESPropertyGroupUpdate.h"
#import "DBFILEPROPERTIESRemovePropertiesArg.h"
#import "DBFILEPROPERTIESRemovePropertiesError.h"
#import "DBFILEPROPERTIESTemplateError.h"
#import "DBFILEPROPERTIESTemplateFilterBase.h"
#import "DBFILEPROPERTIESUpdatePropertiesArg.h"
#import "DBFILEPROPERTIESUpdatePropertiesError.h"
#import "DBFILESAddTagArg.h"
#import "DBFILESAddTagError.h"
#import "DBFILESAlphaGetMetadataArg.h"
#import "DBFILESAlphaGetMetadataError.h"
#import "DBFILESBaseTagError.h"
#import "DBFILESCommitInfo.h"
#import "DBFILESCreateFolderArg.h"
#import "DBFILESCreateFolderBatchArg.h"
#import "DBFILESCreateFolderBatchError.h"
#import "DBFILESCreateFolderBatchJobStatus.h"
#import "DBFILESCreateFolderBatchLaunch.h"
#import "DBFILESCreateFolderBatchResult.h"
#import "DBFILESCreateFolderError.h"
#import "DBFILESCreateFolderResult.h"
#import "DBFILESDeleteArg.h"
#import "DBFILESDeleteBatchArg.h"
#import "DBFILESDeleteBatchError.h"
#import "DBFILESDeleteBatchJobStatus.h"
#import "DBFILESDeleteBatchLaunch.h"
#import "DBFILESDeleteBatchResult.h"
#import "DBFILESDeleteError.h"
#import "DBFILESDeleteResult.h"
#import "DBFILESDeletedMetadata.h"
#import "DBFILESDownloadArg.h"
#import "DBFILESDownloadError.h"
#import "DBFILESDownloadZipArg.h"
#import "DBFILESDownloadZipError.h"
#import "DBFILESDownloadZipResult.h"
#import "DBFILESExportArg.h"
#import "DBFILESExportError.h"
#import "DBFILESExportInfo.h"
#import "DBFILESExportMetadata.h"
#import "DBFILESExportResult.h"
#import "DBFILESFileLockMetadata.h"
#import "DBFILESFileMetadata.h"
#import "DBFILESFileOpsResult.h"
#import "DBFILESFileSharingInfo.h"
#import "DBFILESFolderMetadata.h"
#import "DBFILESFolderSharingInfo.h"
#import "DBFILESGetCopyReferenceArg.h"
#import "DBFILESGetCopyReferenceError.h"
#import "DBFILESGetCopyReferenceResult.h"
#import "DBFILESGetMetadataArg.h"
#import "DBFILESGetMetadataError.h"
#import "DBFILESGetTagsArg.h"
#import "DBFILESGetTagsResult.h"
#import "DBFILESGetTemporaryLinkArg.h"
#import "DBFILESGetTemporaryLinkError.h"
#import "DBFILESGetTemporaryLinkResult.h"
#import "DBFILESGetTemporaryUploadLinkArg.h"
#import "DBFILESGetTemporaryUploadLinkResult.h"
#import "DBFILESGetThumbnailBatchArg.h"
#import "DBFILESGetThumbnailBatchError.h"
#import "DBFILESGetThumbnailBatchResult.h"
#import "DBFILESGetThumbnailBatchResultEntry.h"
#import "DBFILESImportFormat.h"
#import "DBFILESListFolderArg.h"
#import "DBFILESListFolderContinueArg.h"
#import "DBFILESListFolderContinueError.h"
#import "DBFILESListFolderError.h"
#import "DBFILESListFolderGetLatestCursorResult.h"
#import "DBFILESListFolderLongpollArg.h"
#import "DBFILESListFolderLongpollError.h"
#import "DBFILESListFolderLongpollResult.h"
#import "DBFILESListFolderResult.h"
#import "DBFILESListRevisionsArg.h"
#import "DBFILESListRevisionsError.h"
#import "DBFILESListRevisionsMode.h"
#import "DBFILESListRevisionsResult.h"
#import "DBFILESLockConflictError.h"
#import "DBFILESLockFileArg.h"
#import "DBFILESLockFileBatchArg.h"
#import "DBFILESLockFileBatchResult.h"
#import "DBFILESLockFileError.h"
#import "DBFILESLockFileResultEntry.h"
#import "DBFILESLookupError.h"
#import "DBFILESMediaInfo.h"
#import "DBFILESMetadata.h"
#import "DBFILESMinimalFileLinkMetadata.h"
#import "DBFILESMoveBatchArg.h"
#import "DBFILESMoveIntoFamilyError.h"
#import "DBFILESMoveIntoVaultError.h"
#import "DBFILESPaperContentError.h"
#import "DBFILESPaperCreateArg.h"
#import "DBFILESPaperCreateError.h"
#import "DBFILESPaperCreateResult.h"
#import "DBFILESPaperDocUpdatePolicy.h"
#import "DBFILESPaperUpdateArg.h"
#import "DBFILESPaperUpdateError.h"
#import "DBFILESPaperUpdateResult.h"
#import "DBFILESPathOrLink.h"
#import "DBFILESPathToTags.h"
#import "DBFILESPreviewArg.h"
#import "DBFILESPreviewError.h"
#import "DBFILESPreviewResult.h"
#import "DBFILESRelocationArg.h"
#import "DBFILESRelocationBatchArg.h"
#import "DBFILESRelocationBatchArgBase.h"
#import "DBFILESRelocationBatchError.h"
#import "DBFILESRelocationBatchJobStatus.h"
#import "DBFILESRelocationBatchLaunch.h"
#import "DBFILESRelocationBatchResult.h"
#import "DBFILESRelocationBatchV2JobStatus.h"
#import "DBFILESRelocationBatchV2Launch.h"
#import "DBFILESRelocationBatchV2Result.h"
#import "DBFILESRelocationError.h"
#import "DBFILESRelocationPath.h"
#import "DBFILESRelocationResult.h"
#import "DBFILESRemoveTagArg.h"
#import "DBFILESRemoveTagError.h"
#import "DBFILESRestoreArg.h"
#import "DBFILESRestoreError.h"
#import "DBFILESRouteObjects.h"
#import "DBFILESSaveCopyReferenceArg.h"
#import "DBFILESSaveCopyReferenceError.h"
#import "DBFILESSaveCopyReferenceResult.h"
#import "DBFILESSaveUrlArg.h"
#import "DBFILESSaveUrlError.h"
#import "DBFILESSaveUrlJobStatus.h"
#import "DBFILESSaveUrlResult.h"
#import "DBFILESSearchArg.h"
#import "DBFILESSearchError.h"
#import "DBFILESSearchMatch.h"
#import "DBFILESSearchMatchFieldOptions.h"
#import "DBFILESSearchMatchV2.h"
#import "DBFILESSearchMode.h"
#import "DBFILESSearchOptions.h"
#import "DBFILESSearchResult.h"
#import "DBFILESSearchV2Arg.h"
#import "DBFILESSearchV2ContinueArg.h"
#import "DBFILESSearchV2Result.h"
#import "DBFILESSharedLink.h"
#import "DBFILESSymlinkInfo.h"
#import "DBFILESThumbnailArg.h"
#import "DBFILESThumbnailError.h"
#import "DBFILESThumbnailFormat.h"
#import "DBFILESThumbnailMode.h"
#import "DBFILESThumbnailSize.h"
#import "DBFILESThumbnailV2Arg.h"
#import "DBFILESThumbnailV2Error.h"
#import "DBFILESUnlockFileArg.h"
#import "DBFILESUnlockFileBatchArg.h"
#import "DBFILESUploadArg.h"
#import "DBFILESUploadError.h"
#import "DBFILESUploadSessionAppendArg.h"
#import "DBFILESUploadSessionAppendError.h"
#import "DBFILESUploadSessionCursor.h"
#import "DBFILESUploadSessionFinishArg.h"
#import "DBFILESUploadSessionFinishBatchArg.h"
#import "DBFILESUploadSessionFinishBatchJobStatus.h"
#import "DBFILESUploadSessionFinishBatchLaunch.h"
#import "DBFILESUploadSessionFinishBatchResult.h"
#import "DBFILESUploadSessionFinishBatchResultEntry.h"
#import "DBFILESUploadSessionFinishError.h"
#import "DBFILESUploadSessionLookupError.h"
#import "DBFILESUploadSessionOffsetError.h"
#import "DBFILESUploadSessionStartArg.h"
#import "DBFILESUploadSessionStartBatchArg.h"
#import "DBFILESUploadSessionStartBatchResult.h"
#import "DBFILESUploadSessionStartError.h"
#import "DBFILESUploadSessionStartResult.h"
#import "DBFILESUploadSessionType.h"
#import "DBFILESUploadWriteFailed.h"
#import "DBFILESWriteError.h"
#import "DBFILESWriteMode.h"
#import "DBRequestErrors.h"
#import "DBStoneBase.h"
#import "DBTransportClientProtocol.h"

@implementation DBFILESAppAuthRoutes

- (instancetype)init:(id<DBTransportClient>)client {
  self = [super init];
  if (self) {
    _client = client;
  }
  return self;
}

- (DBDownloadUrlTask *)getThumbnailV2Url:(DBFILESPathOrLink *)resource
                               overwrite:(BOOL)overwrite
                             destination:(NSURL *)destination {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetThumbnailV2;
  DBFILESThumbnailV2Arg *arg = [[DBFILESThumbnailV2Arg alloc] initWithResource:resource];
  return [self.client requestDownload:route arg:arg overwrite:overwrite destination:destination];
}

- (DBDownloadUrlTask *)getThumbnailV2Url:(DBFILESPathOrLink *)resource
                                  format:(DBFILESThumbnailFormat *)format
                                    size:(DBFILESThumbnailSize *)size
                                    mode:(DBFILESThumbnailMode *)mode
                               overwrite:(BOOL)overwrite
                             destination:(NSURL *)destination {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetThumbnailV2;
  DBFILESThumbnailV2Arg *arg =
      [[DBFILESThumbnailV2Arg alloc] initWithResource:resource format:format size:size mode:mode];
  return [self.client requestDownload:route arg:arg overwrite:overwrite destination:destination];
}

- (DBDownloadUrlTask *)getThumbnailV2Url:(DBFILESPathOrLink *)resource
                               overwrite:(BOOL)overwrite
                             destination:(NSURL *)destination
                         byteOffsetStart:(NSNumber *)byteOffsetStart
                           byteOffsetEnd:(NSNumber *)byteOffsetEnd {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetThumbnailV2;
  DBFILESThumbnailV2Arg *arg = [[DBFILESThumbnailV2Arg alloc] initWithResource:resource];
  return [self.client requestDownload:route
                                  arg:arg
                            overwrite:overwrite
                          destination:destination
                      byteOffsetStart:byteOffsetStart
                        byteOffsetEnd:byteOffsetEnd];
}

- (DBDownloadUrlTask *)getThumbnailV2Url:(DBFILESPathOrLink *)resource
                                  format:(DBFILESThumbnailFormat *)format
                                    size:(DBFILESThumbnailSize *)size
                                    mode:(DBFILESThumbnailMode *)mode
                               overwrite:(BOOL)overwrite
                             destination:(NSURL *)destination
                         byteOffsetStart:(NSNumber *)byteOffsetStart
                           byteOffsetEnd:(NSNumber *)byteOffsetEnd {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetThumbnailV2;
  DBFILESThumbnailV2Arg *arg =
      [[DBFILESThumbnailV2Arg alloc] initWithResource:resource format:format size:size mode:mode];
  return [self.client requestDownload:route
                                  arg:arg
                            overwrite:overwrite
                          destination:destination
                      byteOffsetStart:byteOffsetStart
                        byteOffsetEnd:byteOffsetEnd];
}

- (DBDownloadDataTask *)getThumbnailV2Data:(DBFILESPathOrLink *)resource {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetThumbnailV2;
  DBFILESThumbnailV2Arg *arg = [[DBFILESThumbnailV2Arg alloc] initWithResource:resource];
  return [self.client requestDownload:route arg:arg];
}

- (DBDownloadDataTask *)getThumbnailV2Data:(DBFILESPathOrLink *)resource
                                    format:(DBFILESThumbnailFormat *)format
                                      size:(DBFILESThumbnailSize *)size
                                      mode:(DBFILESThumbnailMode *)mode {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetThumbnailV2;
  DBFILESThumbnailV2Arg *arg =
      [[DBFILESThumbnailV2Arg alloc] initWithResource:resource format:format size:size mode:mode];
  return [self.client requestDownload:route arg:arg];
}

- (DBDownloadDataTask *)getThumbnailV2Data:(DBFILESPathOrLink *)resource
                           byteOffsetStart:(NSNumber *)byteOffsetStart
                             byteOffsetEnd:(NSNumber *)byteOffsetEnd {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetThumbnailV2;
  DBFILESThumbnailV2Arg *arg = [[DBFILESThumbnailV2Arg alloc] initWithResource:resource];
  return [self.client requestDownload:route arg:arg byteOffsetStart:byteOffsetStart byteOffsetEnd:byteOffsetEnd];
}

- (DBDownloadDataTask *)getThumbnailV2Data:(DBFILESPathOrLink *)resource
                                    format:(DBFILESThumbnailFormat *)format
                                      size:(DBFILESThumbnailSize *)size
                                      mode:(DBFILESThumbnailMode *)mode
                           byteOffsetStart:(NSNumber *)byteOffsetStart
                             byteOffsetEnd:(NSNumber *)byteOffsetEnd {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetThumbnailV2;
  DBFILESThumbnailV2Arg *arg =
      [[DBFILESThumbnailV2Arg alloc] initWithResource:resource format:format size:size mode:mode];
  return [self.client requestDownload:route arg:arg byteOffsetStart:byteOffsetStart byteOffsetEnd:byteOffsetEnd];
}

- (DBRpcTask *)listFolder:(NSString *)path {
  DBRoute *route = DBFILESRouteObjects.DBFILESListFolder;
  DBFILESListFolderArg *arg = [[DBFILESListFolderArg alloc] initWithPath:path];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)listFolder:(NSString *)path
                          recursive:(NSNumber *)recursive
                   includeMediaInfo:(NSNumber *)includeMediaInfo
                     includeDeleted:(NSNumber *)includeDeleted
    includeHasExplicitSharedMembers:(NSNumber *)includeHasExplicitSharedMembers
              includeMountedFolders:(NSNumber *)includeMountedFolders
                              limit:(NSNumber *)limit
                         sharedLink:(DBFILESSharedLink *)sharedLink
              includePropertyGroups:(DBFILEPROPERTIESTemplateFilterBase *)includePropertyGroups
        includeNonDownloadableFiles:(NSNumber *)includeNonDownloadableFiles {
  DBRoute *route = DBFILESRouteObjects.DBFILESListFolder;
  DBFILESListFolderArg *arg = [[DBFILESListFolderArg alloc] initWithPath:path
                                                               recursive:recursive
                                                        includeMediaInfo:includeMediaInfo
                                                          includeDeleted:includeDeleted
                                         includeHasExplicitSharedMembers:includeHasExplicitSharedMembers
                                                   includeMountedFolders:includeMountedFolders
                                                                   limit:limit
                                                              sharedLink:sharedLink
                                                   includePropertyGroups:includePropertyGroups
                                             includeNonDownloadableFiles:includeNonDownloadableFiles];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)listFolderContinue:(NSString *)cursor {
  DBRoute *route = DBFILESRouteObjects.DBFILESListFolderContinue;
  DBFILESListFolderContinueArg *arg = [[DBFILESListFolderContinueArg alloc] initWithCursor:cursor];
  return [self.client requestRpc:route arg:arg];
}

@end
