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

#import "DBFILESUserAuthRoutes.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 DBFILESUserAuthRoutes

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

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

- (DBRpcTask *)alphaGetMetadata:(NSString *)path
                   includeMediaInfo:(NSNumber *)includeMediaInfo
                     includeDeleted:(NSNumber *)includeDeleted
    includeHasExplicitSharedMembers:(NSNumber *)includeHasExplicitSharedMembers
              includePropertyGroups:(DBFILEPROPERTIESTemplateFilterBase *)includePropertyGroups
           includePropertyTemplates:(NSArray<NSString *> *)includePropertyTemplates {
  DBRoute *route = DBFILESRouteObjects.DBFILESAlphaGetMetadata;
  DBFILESAlphaGetMetadataArg *arg = [[DBFILESAlphaGetMetadataArg alloc] initWithPath:path
                                                                    includeMediaInfo:includeMediaInfo
                                                                      includeDeleted:includeDeleted
                                                     includeHasExplicitSharedMembers:includeHasExplicitSharedMembers
                                                               includePropertyGroups:includePropertyGroups
                                                            includePropertyTemplates:includePropertyTemplates];
  return [self.client requestRpc:route arg:arg];
}

- (DBUploadTask *)alphaUploadUrl:(NSString *)path inputUrl:(NSString *)inputUrl {
  DBRoute *route = DBFILESRouteObjects.DBFILESAlphaUpload;
  DBFILESUploadArg *arg = [[DBFILESUploadArg alloc] initWithPath:path];
  return [self.client requestUpload:route arg:arg inputUrl:inputUrl];
}

- (DBUploadTask *)alphaUploadUrl:(NSString *)path
                            mode:(DBFILESWriteMode *)mode
                      autorename:(NSNumber *)autorename
                  clientModified:(NSDate *)clientModified
                            mute:(NSNumber *)mute
                  propertyGroups:(NSArray<DBFILEPROPERTIESPropertyGroup *> *)propertyGroups
                  strictConflict:(NSNumber *)strictConflict
                     contentHash:(NSString *)contentHash
                        inputUrl:(NSString *)inputUrl {
  DBRoute *route = DBFILESRouteObjects.DBFILESAlphaUpload;
  DBFILESUploadArg *arg = [[DBFILESUploadArg alloc] initWithPath:path
                                                            mode:mode
                                                      autorename:autorename
                                                  clientModified:clientModified
                                                            mute:mute
                                                  propertyGroups:propertyGroups
                                                  strictConflict:strictConflict
                                                     contentHash:contentHash];
  return [self.client requestUpload:route arg:arg inputUrl:inputUrl];
}

- (DBUploadTask *)alphaUploadData:(NSString *)path inputData:(NSData *)inputData {
  DBRoute *route = DBFILESRouteObjects.DBFILESAlphaUpload;
  DBFILESUploadArg *arg = [[DBFILESUploadArg alloc] initWithPath:path];
  return [self.client requestUpload:route arg:arg inputData:inputData];
}

- (DBUploadTask *)alphaUploadData:(NSString *)path
                             mode:(DBFILESWriteMode *)mode
                       autorename:(NSNumber *)autorename
                   clientModified:(NSDate *)clientModified
                             mute:(NSNumber *)mute
                   propertyGroups:(NSArray<DBFILEPROPERTIESPropertyGroup *> *)propertyGroups
                   strictConflict:(NSNumber *)strictConflict
                      contentHash:(NSString *)contentHash
                        inputData:(NSData *)inputData {
  DBRoute *route = DBFILESRouteObjects.DBFILESAlphaUpload;
  DBFILESUploadArg *arg = [[DBFILESUploadArg alloc] initWithPath:path
                                                            mode:mode
                                                      autorename:autorename
                                                  clientModified:clientModified
                                                            mute:mute
                                                  propertyGroups:propertyGroups
                                                  strictConflict:strictConflict
                                                     contentHash:contentHash];
  return [self.client requestUpload:route arg:arg inputData:inputData];
}

- (DBUploadTask *)alphaUploadStream:(NSString *)path inputStream:(NSInputStream *)inputStream {
  DBRoute *route = DBFILESRouteObjects.DBFILESAlphaUpload;
  DBFILESUploadArg *arg = [[DBFILESUploadArg alloc] initWithPath:path];
  return [self.client requestUpload:route arg:arg inputStream:inputStream];
}

- (DBUploadTask *)alphaUploadStream:(NSString *)path
                               mode:(DBFILESWriteMode *)mode
                         autorename:(NSNumber *)autorename
                     clientModified:(NSDate *)clientModified
                               mute:(NSNumber *)mute
                     propertyGroups:(NSArray<DBFILEPROPERTIESPropertyGroup *> *)propertyGroups
                     strictConflict:(NSNumber *)strictConflict
                        contentHash:(NSString *)contentHash
                        inputStream:(NSInputStream *)inputStream {
  DBRoute *route = DBFILESRouteObjects.DBFILESAlphaUpload;
  DBFILESUploadArg *arg = [[DBFILESUploadArg alloc] initWithPath:path
                                                            mode:mode
                                                      autorename:autorename
                                                  clientModified:clientModified
                                                            mute:mute
                                                  propertyGroups:propertyGroups
                                                  strictConflict:strictConflict
                                                     contentHash:contentHash];
  return [self.client requestUpload:route arg:arg inputStream:inputStream];
}

- (DBRpcTask *)dCopyV2:(NSString *)fromPath toPath:(NSString *)toPath {
  DBRoute *route = DBFILESRouteObjects.DBFILESDCopyV2;
  DBFILESRelocationArg *arg = [[DBFILESRelocationArg alloc] initWithFromPath:fromPath toPath:toPath];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)dCopyV2:(NSString *)fromPath
                    toPath:(NSString *)toPath
         allowSharedFolder:(NSNumber *)allowSharedFolder
                autorename:(NSNumber *)autorename
    allowOwnershipTransfer:(NSNumber *)allowOwnershipTransfer {
  DBRoute *route = DBFILESRouteObjects.DBFILESDCopyV2;
  DBFILESRelocationArg *arg = [[DBFILESRelocationArg alloc] initWithFromPath:fromPath
                                                                      toPath:toPath
                                                           allowSharedFolder:allowSharedFolder
                                                                  autorename:autorename
                                                      allowOwnershipTransfer:allowOwnershipTransfer];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)dCopy:(NSString *)fromPath toPath:(NSString *)toPath {
  DBRoute *route = DBFILESRouteObjects.DBFILESDCopy;
  DBFILESRelocationArg *arg = [[DBFILESRelocationArg alloc] initWithFromPath:fromPath toPath:toPath];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)dCopy:(NSString *)fromPath
                    toPath:(NSString *)toPath
         allowSharedFolder:(NSNumber *)allowSharedFolder
                autorename:(NSNumber *)autorename
    allowOwnershipTransfer:(NSNumber *)allowOwnershipTransfer {
  DBRoute *route = DBFILESRouteObjects.DBFILESDCopy;
  DBFILESRelocationArg *arg = [[DBFILESRelocationArg alloc] initWithFromPath:fromPath
                                                                      toPath:toPath
                                                           allowSharedFolder:allowSharedFolder
                                                                  autorename:autorename
                                                      allowOwnershipTransfer:allowOwnershipTransfer];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)dCopyBatchV2:(NSArray<DBFILESRelocationPath *> *)entries {
  DBRoute *route = DBFILESRouteObjects.DBFILESDCopyBatchV2;
  DBFILESRelocationBatchArgBase *arg = [[DBFILESRelocationBatchArgBase alloc] initWithEntries:entries];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)dCopyBatchV2:(NSArray<DBFILESRelocationPath *> *)entries autorename:(NSNumber *)autorename {
  DBRoute *route = DBFILESRouteObjects.DBFILESDCopyBatchV2;
  DBFILESRelocationBatchArgBase *arg =
      [[DBFILESRelocationBatchArgBase alloc] initWithEntries:entries autorename:autorename];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)dCopyBatch:(NSArray<DBFILESRelocationPath *> *)entries {
  DBRoute *route = DBFILESRouteObjects.DBFILESDCopyBatch;
  DBFILESRelocationBatchArg *arg = [[DBFILESRelocationBatchArg alloc] initWithEntries:entries];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)dCopyBatch:(NSArray<DBFILESRelocationPath *> *)entries
                autorename:(NSNumber *)autorename
         allowSharedFolder:(NSNumber *)allowSharedFolder
    allowOwnershipTransfer:(NSNumber *)allowOwnershipTransfer {
  DBRoute *route = DBFILESRouteObjects.DBFILESDCopyBatch;
  DBFILESRelocationBatchArg *arg = [[DBFILESRelocationBatchArg alloc] initWithEntries:entries
                                                                           autorename:autorename
                                                                    allowSharedFolder:allowSharedFolder
                                                               allowOwnershipTransfer:allowOwnershipTransfer];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)dCopyBatchCheckV2:(NSString *)asyncJobId {
  DBRoute *route = DBFILESRouteObjects.DBFILESDCopyBatchCheckV2;
  DBASYNCPollArg *arg = [[DBASYNCPollArg alloc] initWithAsyncJobId:asyncJobId];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)dCopyBatchCheck:(NSString *)asyncJobId {
  DBRoute *route = DBFILESRouteObjects.DBFILESDCopyBatchCheck;
  DBASYNCPollArg *arg = [[DBASYNCPollArg alloc] initWithAsyncJobId:asyncJobId];
  return [self.client requestRpc:route arg:arg];
}

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

- (DBRpcTask *)dCopyReferenceSave:(NSString *)dCopyReference path:(NSString *)path {
  DBRoute *route = DBFILESRouteObjects.DBFILESDCopyReferenceSave;
  DBFILESSaveCopyReferenceArg *arg =
      [[DBFILESSaveCopyReferenceArg alloc] initWithDCopyReference:dCopyReference path:path];
  return [self.client requestRpc:route arg:arg];
}

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

- (DBRpcTask *)createFolderV2:(NSString *)path autorename:(NSNumber *)autorename {
  DBRoute *route = DBFILESRouteObjects.DBFILESCreateFolderV2;
  DBFILESCreateFolderArg *arg = [[DBFILESCreateFolderArg alloc] initWithPath:path autorename:autorename];
  return [self.client requestRpc:route arg:arg];
}

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

- (DBRpcTask *)createFolder:(NSString *)path autorename:(NSNumber *)autorename {
  DBRoute *route = DBFILESRouteObjects.DBFILESCreateFolder;
  DBFILESCreateFolderArg *arg = [[DBFILESCreateFolderArg alloc] initWithPath:path autorename:autorename];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)createFolderBatch:(NSArray<NSString *> *)paths {
  DBRoute *route = DBFILESRouteObjects.DBFILESCreateFolderBatch;
  DBFILESCreateFolderBatchArg *arg = [[DBFILESCreateFolderBatchArg alloc] initWithPaths:paths];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)createFolderBatch:(NSArray<NSString *> *)paths
                      autorename:(NSNumber *)autorename
                      forceAsync:(NSNumber *)forceAsync {
  DBRoute *route = DBFILESRouteObjects.DBFILESCreateFolderBatch;
  DBFILESCreateFolderBatchArg *arg =
      [[DBFILESCreateFolderBatchArg alloc] initWithPaths:paths autorename:autorename forceAsync:forceAsync];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)createFolderBatchCheck:(NSString *)asyncJobId {
  DBRoute *route = DBFILESRouteObjects.DBFILESCreateFolderBatchCheck;
  DBASYNCPollArg *arg = [[DBASYNCPollArg alloc] initWithAsyncJobId:asyncJobId];
  return [self.client requestRpc:route arg:arg];
}

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

- (DBRpcTask *)delete_V2:(NSString *)path parentRev:(NSString *)parentRev {
  DBRoute *route = DBFILESRouteObjects.DBFILESDelete_V2;
  DBFILESDeleteArg *arg = [[DBFILESDeleteArg alloc] initWithPath:path parentRev:parentRev];
  return [self.client requestRpc:route arg:arg];
}

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

- (DBRpcTask *)delete_:(NSString *)path parentRev:(NSString *)parentRev {
  DBRoute *route = DBFILESRouteObjects.DBFILESDelete_;
  DBFILESDeleteArg *arg = [[DBFILESDeleteArg alloc] initWithPath:path parentRev:parentRev];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)deleteBatch:(NSArray<DBFILESDeleteArg *> *)entries {
  DBRoute *route = DBFILESRouteObjects.DBFILESDeleteBatch;
  DBFILESDeleteBatchArg *arg = [[DBFILESDeleteBatchArg alloc] initWithEntries:entries];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)deleteBatchCheck:(NSString *)asyncJobId {
  DBRoute *route = DBFILESRouteObjects.DBFILESDeleteBatchCheck;
  DBASYNCPollArg *arg = [[DBASYNCPollArg alloc] initWithAsyncJobId:asyncJobId];
  return [self.client requestRpc:route arg:arg];
}

- (DBDownloadUrlTask *)downloadUrl:(NSString *)path overwrite:(BOOL)overwrite destination:(NSURL *)destination {
  DBRoute *route = DBFILESRouteObjects.DBFILESDownload;
  DBFILESDownloadArg *arg = [[DBFILESDownloadArg alloc] initWithPath:path];
  return [self.client requestDownload:route arg:arg overwrite:overwrite destination:destination];
}

- (DBDownloadUrlTask *)downloadUrl:(NSString *)path
                               rev:(NSString *)rev
                         overwrite:(BOOL)overwrite
                       destination:(NSURL *)destination {
  DBRoute *route = DBFILESRouteObjects.DBFILESDownload;
  DBFILESDownloadArg *arg = [[DBFILESDownloadArg alloc] initWithPath:path rev:rev];
  return [self.client requestDownload:route arg:arg overwrite:overwrite destination:destination];
}

- (DBDownloadUrlTask *)downloadUrl:(NSString *)path
                         overwrite:(BOOL)overwrite
                       destination:(NSURL *)destination
                   byteOffsetStart:(NSNumber *)byteOffsetStart
                     byteOffsetEnd:(NSNumber *)byteOffsetEnd {
  DBRoute *route = DBFILESRouteObjects.DBFILESDownload;
  DBFILESDownloadArg *arg = [[DBFILESDownloadArg alloc] initWithPath:path];
  return [self.client requestDownload:route
                                  arg:arg
                            overwrite:overwrite
                          destination:destination
                      byteOffsetStart:byteOffsetStart
                        byteOffsetEnd:byteOffsetEnd];
}

- (DBDownloadUrlTask *)downloadUrl:(NSString *)path
                               rev:(NSString *)rev
                         overwrite:(BOOL)overwrite
                       destination:(NSURL *)destination
                   byteOffsetStart:(NSNumber *)byteOffsetStart
                     byteOffsetEnd:(NSNumber *)byteOffsetEnd {
  DBRoute *route = DBFILESRouteObjects.DBFILESDownload;
  DBFILESDownloadArg *arg = [[DBFILESDownloadArg alloc] initWithPath:path rev:rev];
  return [self.client requestDownload:route
                                  arg:arg
                            overwrite:overwrite
                          destination:destination
                      byteOffsetStart:byteOffsetStart
                        byteOffsetEnd:byteOffsetEnd];
}

- (DBDownloadDataTask *)downloadData:(NSString *)path {
  DBRoute *route = DBFILESRouteObjects.DBFILESDownload;
  DBFILESDownloadArg *arg = [[DBFILESDownloadArg alloc] initWithPath:path];
  return [self.client requestDownload:route arg:arg];
}

- (DBDownloadDataTask *)downloadData:(NSString *)path rev:(NSString *)rev {
  DBRoute *route = DBFILESRouteObjects.DBFILESDownload;
  DBFILESDownloadArg *arg = [[DBFILESDownloadArg alloc] initWithPath:path rev:rev];
  return [self.client requestDownload:route arg:arg];
}

- (DBDownloadDataTask *)downloadData:(NSString *)path
                     byteOffsetStart:(NSNumber *)byteOffsetStart
                       byteOffsetEnd:(NSNumber *)byteOffsetEnd {
  DBRoute *route = DBFILESRouteObjects.DBFILESDownload;
  DBFILESDownloadArg *arg = [[DBFILESDownloadArg alloc] initWithPath:path];
  return [self.client requestDownload:route arg:arg byteOffsetStart:byteOffsetStart byteOffsetEnd:byteOffsetEnd];
}

- (DBDownloadDataTask *)downloadData:(NSString *)path
                                 rev:(NSString *)rev
                     byteOffsetStart:(NSNumber *)byteOffsetStart
                       byteOffsetEnd:(NSNumber *)byteOffsetEnd {
  DBRoute *route = DBFILESRouteObjects.DBFILESDownload;
  DBFILESDownloadArg *arg = [[DBFILESDownloadArg alloc] initWithPath:path rev:rev];
  return [self.client requestDownload:route arg:arg byteOffsetStart:byteOffsetStart byteOffsetEnd:byteOffsetEnd];
}

- (DBDownloadUrlTask *)downloadZipUrl:(NSString *)path overwrite:(BOOL)overwrite destination:(NSURL *)destination {
  DBRoute *route = DBFILESRouteObjects.DBFILESDownloadZip;
  DBFILESDownloadZipArg *arg = [[DBFILESDownloadZipArg alloc] initWithPath:path];
  return [self.client requestDownload:route arg:arg overwrite:overwrite destination:destination];
}

- (DBDownloadUrlTask *)downloadZipUrl:(NSString *)path
                            overwrite:(BOOL)overwrite
                          destination:(NSURL *)destination
                      byteOffsetStart:(NSNumber *)byteOffsetStart
                        byteOffsetEnd:(NSNumber *)byteOffsetEnd {
  DBRoute *route = DBFILESRouteObjects.DBFILESDownloadZip;
  DBFILESDownloadZipArg *arg = [[DBFILESDownloadZipArg alloc] initWithPath:path];
  return [self.client requestDownload:route
                                  arg:arg
                            overwrite:overwrite
                          destination:destination
                      byteOffsetStart:byteOffsetStart
                        byteOffsetEnd:byteOffsetEnd];
}

- (DBDownloadDataTask *)downloadZipData:(NSString *)path {
  DBRoute *route = DBFILESRouteObjects.DBFILESDownloadZip;
  DBFILESDownloadZipArg *arg = [[DBFILESDownloadZipArg alloc] initWithPath:path];
  return [self.client requestDownload:route arg:arg];
}

- (DBDownloadDataTask *)downloadZipData:(NSString *)path
                        byteOffsetStart:(NSNumber *)byteOffsetStart
                          byteOffsetEnd:(NSNumber *)byteOffsetEnd {
  DBRoute *route = DBFILESRouteObjects.DBFILESDownloadZip;
  DBFILESDownloadZipArg *arg = [[DBFILESDownloadZipArg alloc] initWithPath:path];
  return [self.client requestDownload:route arg:arg byteOffsetStart:byteOffsetStart byteOffsetEnd:byteOffsetEnd];
}

- (DBDownloadUrlTask *)exportUrl:(NSString *)path overwrite:(BOOL)overwrite destination:(NSURL *)destination {
  DBRoute *route = DBFILESRouteObjects.DBFILESExport;
  DBFILESExportArg *arg = [[DBFILESExportArg alloc] initWithPath:path];
  return [self.client requestDownload:route arg:arg overwrite:overwrite destination:destination];
}

- (DBDownloadUrlTask *)exportUrl:(NSString *)path
                    exportFormat:(NSString *)exportFormat
                       overwrite:(BOOL)overwrite
                     destination:(NSURL *)destination {
  DBRoute *route = DBFILESRouteObjects.DBFILESExport;
  DBFILESExportArg *arg = [[DBFILESExportArg alloc] initWithPath:path exportFormat:exportFormat];
  return [self.client requestDownload:route arg:arg overwrite:overwrite destination:destination];
}

- (DBDownloadUrlTask *)exportUrl:(NSString *)path
                       overwrite:(BOOL)overwrite
                     destination:(NSURL *)destination
                 byteOffsetStart:(NSNumber *)byteOffsetStart
                   byteOffsetEnd:(NSNumber *)byteOffsetEnd {
  DBRoute *route = DBFILESRouteObjects.DBFILESExport;
  DBFILESExportArg *arg = [[DBFILESExportArg alloc] initWithPath:path];
  return [self.client requestDownload:route
                                  arg:arg
                            overwrite:overwrite
                          destination:destination
                      byteOffsetStart:byteOffsetStart
                        byteOffsetEnd:byteOffsetEnd];
}

- (DBDownloadUrlTask *)exportUrl:(NSString *)path
                    exportFormat:(NSString *)exportFormat
                       overwrite:(BOOL)overwrite
                     destination:(NSURL *)destination
                 byteOffsetStart:(NSNumber *)byteOffsetStart
                   byteOffsetEnd:(NSNumber *)byteOffsetEnd {
  DBRoute *route = DBFILESRouteObjects.DBFILESExport;
  DBFILESExportArg *arg = [[DBFILESExportArg alloc] initWithPath:path exportFormat:exportFormat];
  return [self.client requestDownload:route
                                  arg:arg
                            overwrite:overwrite
                          destination:destination
                      byteOffsetStart:byteOffsetStart
                        byteOffsetEnd:byteOffsetEnd];
}

- (DBDownloadDataTask *)exportData:(NSString *)path {
  DBRoute *route = DBFILESRouteObjects.DBFILESExport;
  DBFILESExportArg *arg = [[DBFILESExportArg alloc] initWithPath:path];
  return [self.client requestDownload:route arg:arg];
}

- (DBDownloadDataTask *)exportData:(NSString *)path exportFormat:(NSString *)exportFormat {
  DBRoute *route = DBFILESRouteObjects.DBFILESExport;
  DBFILESExportArg *arg = [[DBFILESExportArg alloc] initWithPath:path exportFormat:exportFormat];
  return [self.client requestDownload:route arg:arg];
}

- (DBDownloadDataTask *)exportData:(NSString *)path
                   byteOffsetStart:(NSNumber *)byteOffsetStart
                     byteOffsetEnd:(NSNumber *)byteOffsetEnd {
  DBRoute *route = DBFILESRouteObjects.DBFILESExport;
  DBFILESExportArg *arg = [[DBFILESExportArg alloc] initWithPath:path];
  return [self.client requestDownload:route arg:arg byteOffsetStart:byteOffsetStart byteOffsetEnd:byteOffsetEnd];
}

- (DBDownloadDataTask *)exportData:(NSString *)path
                      exportFormat:(NSString *)exportFormat
                   byteOffsetStart:(NSNumber *)byteOffsetStart
                     byteOffsetEnd:(NSNumber *)byteOffsetEnd {
  DBRoute *route = DBFILESRouteObjects.DBFILESExport;
  DBFILESExportArg *arg = [[DBFILESExportArg alloc] initWithPath:path exportFormat:exportFormat];
  return [self.client requestDownload:route arg:arg byteOffsetStart:byteOffsetStart byteOffsetEnd:byteOffsetEnd];
}

- (DBRpcTask *)getFileLockBatch:(NSArray<DBFILESLockFileArg *> *)entries {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetFileLockBatch;
  DBFILESLockFileBatchArg *arg = [[DBFILESLockFileBatchArg alloc] initWithEntries:entries];
  return [self.client requestRpc:route arg:arg];
}

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

- (DBRpcTask *)getMetadata:(NSString *)path
                   includeMediaInfo:(NSNumber *)includeMediaInfo
                     includeDeleted:(NSNumber *)includeDeleted
    includeHasExplicitSharedMembers:(NSNumber *)includeHasExplicitSharedMembers
              includePropertyGroups:(DBFILEPROPERTIESTemplateFilterBase *)includePropertyGroups {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetMetadata;
  DBFILESGetMetadataArg *arg = [[DBFILESGetMetadataArg alloc] initWithPath:path
                                                          includeMediaInfo:includeMediaInfo
                                                            includeDeleted:includeDeleted
                                           includeHasExplicitSharedMembers:includeHasExplicitSharedMembers
                                                     includePropertyGroups:includePropertyGroups];
  return [self.client requestRpc:route arg:arg];
}

- (DBDownloadUrlTask *)getPreviewUrl:(NSString *)path overwrite:(BOOL)overwrite destination:(NSURL *)destination {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetPreview;
  DBFILESPreviewArg *arg = [[DBFILESPreviewArg alloc] initWithPath:path];
  return [self.client requestDownload:route arg:arg overwrite:overwrite destination:destination];
}

- (DBDownloadUrlTask *)getPreviewUrl:(NSString *)path
                                 rev:(NSString *)rev
                           overwrite:(BOOL)overwrite
                         destination:(NSURL *)destination {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetPreview;
  DBFILESPreviewArg *arg = [[DBFILESPreviewArg alloc] initWithPath:path rev:rev];
  return [self.client requestDownload:route arg:arg overwrite:overwrite destination:destination];
}

- (DBDownloadUrlTask *)getPreviewUrl:(NSString *)path
                           overwrite:(BOOL)overwrite
                         destination:(NSURL *)destination
                     byteOffsetStart:(NSNumber *)byteOffsetStart
                       byteOffsetEnd:(NSNumber *)byteOffsetEnd {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetPreview;
  DBFILESPreviewArg *arg = [[DBFILESPreviewArg alloc] initWithPath:path];
  return [self.client requestDownload:route
                                  arg:arg
                            overwrite:overwrite
                          destination:destination
                      byteOffsetStart:byteOffsetStart
                        byteOffsetEnd:byteOffsetEnd];
}

- (DBDownloadUrlTask *)getPreviewUrl:(NSString *)path
                                 rev:(NSString *)rev
                           overwrite:(BOOL)overwrite
                         destination:(NSURL *)destination
                     byteOffsetStart:(NSNumber *)byteOffsetStart
                       byteOffsetEnd:(NSNumber *)byteOffsetEnd {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetPreview;
  DBFILESPreviewArg *arg = [[DBFILESPreviewArg alloc] initWithPath:path rev:rev];
  return [self.client requestDownload:route
                                  arg:arg
                            overwrite:overwrite
                          destination:destination
                      byteOffsetStart:byteOffsetStart
                        byteOffsetEnd:byteOffsetEnd];
}

- (DBDownloadDataTask *)getPreviewData:(NSString *)path {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetPreview;
  DBFILESPreviewArg *arg = [[DBFILESPreviewArg alloc] initWithPath:path];
  return [self.client requestDownload:route arg:arg];
}

- (DBDownloadDataTask *)getPreviewData:(NSString *)path rev:(NSString *)rev {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetPreview;
  DBFILESPreviewArg *arg = [[DBFILESPreviewArg alloc] initWithPath:path rev:rev];
  return [self.client requestDownload:route arg:arg];
}

- (DBDownloadDataTask *)getPreviewData:(NSString *)path
                       byteOffsetStart:(NSNumber *)byteOffsetStart
                         byteOffsetEnd:(NSNumber *)byteOffsetEnd {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetPreview;
  DBFILESPreviewArg *arg = [[DBFILESPreviewArg alloc] initWithPath:path];
  return [self.client requestDownload:route arg:arg byteOffsetStart:byteOffsetStart byteOffsetEnd:byteOffsetEnd];
}

- (DBDownloadDataTask *)getPreviewData:(NSString *)path
                                   rev:(NSString *)rev
                       byteOffsetStart:(NSNumber *)byteOffsetStart
                         byteOffsetEnd:(NSNumber *)byteOffsetEnd {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetPreview;
  DBFILESPreviewArg *arg = [[DBFILESPreviewArg alloc] initWithPath:path rev:rev];
  return [self.client requestDownload:route arg:arg byteOffsetStart:byteOffsetStart byteOffsetEnd:byteOffsetEnd];
}

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

- (DBRpcTask *)getTemporaryUploadLink:(DBFILESCommitInfo *)commitInfo {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetTemporaryUploadLink;
  DBFILESGetTemporaryUploadLinkArg *arg = [[DBFILESGetTemporaryUploadLinkArg alloc] initWithCommitInfo:commitInfo];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)getTemporaryUploadLink:(DBFILESCommitInfo *)commitInfo duration:(NSNumber *)duration {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetTemporaryUploadLink;
  DBFILESGetTemporaryUploadLinkArg *arg =
      [[DBFILESGetTemporaryUploadLinkArg alloc] initWithCommitInfo:commitInfo duration:duration];
  return [self.client requestRpc:route arg:arg];
}

- (DBDownloadUrlTask *)getThumbnailUrl:(NSString *)path overwrite:(BOOL)overwrite destination:(NSURL *)destination {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetThumbnail;
  DBFILESThumbnailArg *arg = [[DBFILESThumbnailArg alloc] initWithPath:path];
  return [self.client requestDownload:route arg:arg overwrite:overwrite destination:destination];
}

- (DBDownloadUrlTask *)getThumbnailUrl:(NSString *)path
                                format:(DBFILESThumbnailFormat *)format
                                  size:(DBFILESThumbnailSize *)size
                                  mode:(DBFILESThumbnailMode *)mode
                             overwrite:(BOOL)overwrite
                           destination:(NSURL *)destination {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetThumbnail;
  DBFILESThumbnailArg *arg = [[DBFILESThumbnailArg alloc] initWithPath:path format:format size:size mode:mode];
  return [self.client requestDownload:route arg:arg overwrite:overwrite destination:destination];
}

- (DBDownloadUrlTask *)getThumbnailUrl:(NSString *)path
                             overwrite:(BOOL)overwrite
                           destination:(NSURL *)destination
                       byteOffsetStart:(NSNumber *)byteOffsetStart
                         byteOffsetEnd:(NSNumber *)byteOffsetEnd {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetThumbnail;
  DBFILESThumbnailArg *arg = [[DBFILESThumbnailArg alloc] initWithPath:path];
  return [self.client requestDownload:route
                                  arg:arg
                            overwrite:overwrite
                          destination:destination
                      byteOffsetStart:byteOffsetStart
                        byteOffsetEnd:byteOffsetEnd];
}

- (DBDownloadUrlTask *)getThumbnailUrl:(NSString *)path
                                format:(DBFILESThumbnailFormat *)format
                                  size:(DBFILESThumbnailSize *)size
                                  mode:(DBFILESThumbnailMode *)mode
                             overwrite:(BOOL)overwrite
                           destination:(NSURL *)destination
                       byteOffsetStart:(NSNumber *)byteOffsetStart
                         byteOffsetEnd:(NSNumber *)byteOffsetEnd {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetThumbnail;
  DBFILESThumbnailArg *arg = [[DBFILESThumbnailArg alloc] initWithPath:path format:format size:size mode:mode];
  return [self.client requestDownload:route
                                  arg:arg
                            overwrite:overwrite
                          destination:destination
                      byteOffsetStart:byteOffsetStart
                        byteOffsetEnd:byteOffsetEnd];
}

- (DBDownloadDataTask *)getThumbnailData:(NSString *)path {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetThumbnail;
  DBFILESThumbnailArg *arg = [[DBFILESThumbnailArg alloc] initWithPath:path];
  return [self.client requestDownload:route arg:arg];
}

- (DBDownloadDataTask *)getThumbnailData:(NSString *)path
                                  format:(DBFILESThumbnailFormat *)format
                                    size:(DBFILESThumbnailSize *)size
                                    mode:(DBFILESThumbnailMode *)mode {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetThumbnail;
  DBFILESThumbnailArg *arg = [[DBFILESThumbnailArg alloc] initWithPath:path format:format size:size mode:mode];
  return [self.client requestDownload:route arg:arg];
}

- (DBDownloadDataTask *)getThumbnailData:(NSString *)path
                         byteOffsetStart:(NSNumber *)byteOffsetStart
                           byteOffsetEnd:(NSNumber *)byteOffsetEnd {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetThumbnail;
  DBFILESThumbnailArg *arg = [[DBFILESThumbnailArg alloc] initWithPath:path];
  return [self.client requestDownload:route arg:arg byteOffsetStart:byteOffsetStart byteOffsetEnd:byteOffsetEnd];
}

- (DBDownloadDataTask *)getThumbnailData:(NSString *)path
                                  format:(DBFILESThumbnailFormat *)format
                                    size:(DBFILESThumbnailSize *)size
                                    mode:(DBFILESThumbnailMode *)mode
                         byteOffsetStart:(NSNumber *)byteOffsetStart
                           byteOffsetEnd:(NSNumber *)byteOffsetEnd {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetThumbnail;
  DBFILESThumbnailArg *arg = [[DBFILESThumbnailArg alloc] initWithPath:path format:format size:size mode:mode];
  return [self.client requestDownload:route arg:arg byteOffsetStart:byteOffsetStart byteOffsetEnd:byteOffsetEnd];
}

- (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 *)getThumbnailBatch:(NSArray<DBFILESThumbnailArg *> *)entries {
  DBRoute *route = DBFILESRouteObjects.DBFILESGetThumbnailBatch;
  DBFILESGetThumbnailBatchArg *arg = [[DBFILESGetThumbnailBatchArg alloc] initWithEntries:entries];
  return [self.client requestRpc:route arg:arg];
}

- (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];
}

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

- (DBRpcTask *)listFolderGetLatestCursor:(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.DBFILESListFolderGetLatestCursor;
  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 *)listFolderLongpoll:(NSString *)cursor {
  DBRoute *route = DBFILESRouteObjects.DBFILESListFolderLongpoll;
  DBFILESListFolderLongpollArg *arg = [[DBFILESListFolderLongpollArg alloc] initWithCursor:cursor];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)listFolderLongpoll:(NSString *)cursor timeout:(NSNumber *)timeout {
  DBRoute *route = DBFILESRouteObjects.DBFILESListFolderLongpoll;
  DBFILESListFolderLongpollArg *arg = [[DBFILESListFolderLongpollArg alloc] initWithCursor:cursor timeout:timeout];
  return [self.client requestRpc:route arg:arg];
}

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

- (DBRpcTask *)listRevisions:(NSString *)path mode:(DBFILESListRevisionsMode *)mode limit:(NSNumber *)limit {
  DBRoute *route = DBFILESRouteObjects.DBFILESListRevisions;
  DBFILESListRevisionsArg *arg = [[DBFILESListRevisionsArg alloc] initWithPath:path mode:mode limit:limit];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)lockFileBatch:(NSArray<DBFILESLockFileArg *> *)entries {
  DBRoute *route = DBFILESRouteObjects.DBFILESLockFileBatch;
  DBFILESLockFileBatchArg *arg = [[DBFILESLockFileBatchArg alloc] initWithEntries:entries];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)moveV2:(NSString *)fromPath toPath:(NSString *)toPath {
  DBRoute *route = DBFILESRouteObjects.DBFILESMoveV2;
  DBFILESRelocationArg *arg = [[DBFILESRelocationArg alloc] initWithFromPath:fromPath toPath:toPath];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)moveV2:(NSString *)fromPath
                    toPath:(NSString *)toPath
         allowSharedFolder:(NSNumber *)allowSharedFolder
                autorename:(NSNumber *)autorename
    allowOwnershipTransfer:(NSNumber *)allowOwnershipTransfer {
  DBRoute *route = DBFILESRouteObjects.DBFILESMoveV2;
  DBFILESRelocationArg *arg = [[DBFILESRelocationArg alloc] initWithFromPath:fromPath
                                                                      toPath:toPath
                                                           allowSharedFolder:allowSharedFolder
                                                                  autorename:autorename
                                                      allowOwnershipTransfer:allowOwnershipTransfer];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)move:(NSString *)fromPath toPath:(NSString *)toPath {
  DBRoute *route = DBFILESRouteObjects.DBFILESMove;
  DBFILESRelocationArg *arg = [[DBFILESRelocationArg alloc] initWithFromPath:fromPath toPath:toPath];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)move:(NSString *)fromPath
                    toPath:(NSString *)toPath
         allowSharedFolder:(NSNumber *)allowSharedFolder
                autorename:(NSNumber *)autorename
    allowOwnershipTransfer:(NSNumber *)allowOwnershipTransfer {
  DBRoute *route = DBFILESRouteObjects.DBFILESMove;
  DBFILESRelocationArg *arg = [[DBFILESRelocationArg alloc] initWithFromPath:fromPath
                                                                      toPath:toPath
                                                           allowSharedFolder:allowSharedFolder
                                                                  autorename:autorename
                                                      allowOwnershipTransfer:allowOwnershipTransfer];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)moveBatchV2:(NSArray<DBFILESRelocationPath *> *)entries {
  DBRoute *route = DBFILESRouteObjects.DBFILESMoveBatchV2;
  DBFILESMoveBatchArg *arg = [[DBFILESMoveBatchArg alloc] initWithEntries:entries];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)moveBatchV2:(NSArray<DBFILESRelocationPath *> *)entries
                autorename:(NSNumber *)autorename
    allowOwnershipTransfer:(NSNumber *)allowOwnershipTransfer {
  DBRoute *route = DBFILESRouteObjects.DBFILESMoveBatchV2;
  DBFILESMoveBatchArg *arg = [[DBFILESMoveBatchArg alloc] initWithEntries:entries
                                                               autorename:autorename
                                                   allowOwnershipTransfer:allowOwnershipTransfer];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)moveBatch:(NSArray<DBFILESRelocationPath *> *)entries {
  DBRoute *route = DBFILESRouteObjects.DBFILESMoveBatch;
  DBFILESRelocationBatchArg *arg = [[DBFILESRelocationBatchArg alloc] initWithEntries:entries];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)moveBatch:(NSArray<DBFILESRelocationPath *> *)entries
                autorename:(NSNumber *)autorename
         allowSharedFolder:(NSNumber *)allowSharedFolder
    allowOwnershipTransfer:(NSNumber *)allowOwnershipTransfer {
  DBRoute *route = DBFILESRouteObjects.DBFILESMoveBatch;
  DBFILESRelocationBatchArg *arg = [[DBFILESRelocationBatchArg alloc] initWithEntries:entries
                                                                           autorename:autorename
                                                                    allowSharedFolder:allowSharedFolder
                                                               allowOwnershipTransfer:allowOwnershipTransfer];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)moveBatchCheckV2:(NSString *)asyncJobId {
  DBRoute *route = DBFILESRouteObjects.DBFILESMoveBatchCheckV2;
  DBASYNCPollArg *arg = [[DBASYNCPollArg alloc] initWithAsyncJobId:asyncJobId];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)moveBatchCheck:(NSString *)asyncJobId {
  DBRoute *route = DBFILESRouteObjects.DBFILESMoveBatchCheck;
  DBASYNCPollArg *arg = [[DBASYNCPollArg alloc] initWithAsyncJobId:asyncJobId];
  return [self.client requestRpc:route arg:arg];
}

- (DBUploadTask *)paperCreateUrl:(NSString *)path
                    importFormat:(DBFILESImportFormat *)importFormat
                        inputUrl:(NSString *)inputUrl {
  DBRoute *route = DBFILESRouteObjects.DBFILESPaperCreate;
  DBFILESPaperCreateArg *arg = [[DBFILESPaperCreateArg alloc] initWithPath:path importFormat:importFormat];
  return [self.client requestUpload:route arg:arg inputUrl:inputUrl];
}

- (DBUploadTask *)paperCreateData:(NSString *)path
                     importFormat:(DBFILESImportFormat *)importFormat
                        inputData:(NSData *)inputData {
  DBRoute *route = DBFILESRouteObjects.DBFILESPaperCreate;
  DBFILESPaperCreateArg *arg = [[DBFILESPaperCreateArg alloc] initWithPath:path importFormat:importFormat];
  return [self.client requestUpload:route arg:arg inputData:inputData];
}

- (DBUploadTask *)paperCreateStream:(NSString *)path
                       importFormat:(DBFILESImportFormat *)importFormat
                        inputStream:(NSInputStream *)inputStream {
  DBRoute *route = DBFILESRouteObjects.DBFILESPaperCreate;
  DBFILESPaperCreateArg *arg = [[DBFILESPaperCreateArg alloc] initWithPath:path importFormat:importFormat];
  return [self.client requestUpload:route arg:arg inputStream:inputStream];
}

- (DBUploadTask *)paperUpdateUrl:(NSString *)path
                    importFormat:(DBFILESImportFormat *)importFormat
                 docUpdatePolicy:(DBFILESPaperDocUpdatePolicy *)docUpdatePolicy
                        inputUrl:(NSString *)inputUrl {
  DBRoute *route = DBFILESRouteObjects.DBFILESPaperUpdate;
  DBFILESPaperUpdateArg *arg =
      [[DBFILESPaperUpdateArg alloc] initWithPath:path importFormat:importFormat docUpdatePolicy:docUpdatePolicy];
  return [self.client requestUpload:route arg:arg inputUrl:inputUrl];
}

- (DBUploadTask *)paperUpdateUrl:(NSString *)path
                    importFormat:(DBFILESImportFormat *)importFormat
                 docUpdatePolicy:(DBFILESPaperDocUpdatePolicy *)docUpdatePolicy
                   paperRevision:(NSNumber *)paperRevision
                        inputUrl:(NSString *)inputUrl {
  DBRoute *route = DBFILESRouteObjects.DBFILESPaperUpdate;
  DBFILESPaperUpdateArg *arg = [[DBFILESPaperUpdateArg alloc] initWithPath:path
                                                              importFormat:importFormat
                                                           docUpdatePolicy:docUpdatePolicy
                                                             paperRevision:paperRevision];
  return [self.client requestUpload:route arg:arg inputUrl:inputUrl];
}

- (DBUploadTask *)paperUpdateData:(NSString *)path
                     importFormat:(DBFILESImportFormat *)importFormat
                  docUpdatePolicy:(DBFILESPaperDocUpdatePolicy *)docUpdatePolicy
                        inputData:(NSData *)inputData {
  DBRoute *route = DBFILESRouteObjects.DBFILESPaperUpdate;
  DBFILESPaperUpdateArg *arg =
      [[DBFILESPaperUpdateArg alloc] initWithPath:path importFormat:importFormat docUpdatePolicy:docUpdatePolicy];
  return [self.client requestUpload:route arg:arg inputData:inputData];
}

- (DBUploadTask *)paperUpdateData:(NSString *)path
                     importFormat:(DBFILESImportFormat *)importFormat
                  docUpdatePolicy:(DBFILESPaperDocUpdatePolicy *)docUpdatePolicy
                    paperRevision:(NSNumber *)paperRevision
                        inputData:(NSData *)inputData {
  DBRoute *route = DBFILESRouteObjects.DBFILESPaperUpdate;
  DBFILESPaperUpdateArg *arg = [[DBFILESPaperUpdateArg alloc] initWithPath:path
                                                              importFormat:importFormat
                                                           docUpdatePolicy:docUpdatePolicy
                                                             paperRevision:paperRevision];
  return [self.client requestUpload:route arg:arg inputData:inputData];
}

- (DBUploadTask *)paperUpdateStream:(NSString *)path
                       importFormat:(DBFILESImportFormat *)importFormat
                    docUpdatePolicy:(DBFILESPaperDocUpdatePolicy *)docUpdatePolicy
                        inputStream:(NSInputStream *)inputStream {
  DBRoute *route = DBFILESRouteObjects.DBFILESPaperUpdate;
  DBFILESPaperUpdateArg *arg =
      [[DBFILESPaperUpdateArg alloc] initWithPath:path importFormat:importFormat docUpdatePolicy:docUpdatePolicy];
  return [self.client requestUpload:route arg:arg inputStream:inputStream];
}

- (DBUploadTask *)paperUpdateStream:(NSString *)path
                       importFormat:(DBFILESImportFormat *)importFormat
                    docUpdatePolicy:(DBFILESPaperDocUpdatePolicy *)docUpdatePolicy
                      paperRevision:(NSNumber *)paperRevision
                        inputStream:(NSInputStream *)inputStream {
  DBRoute *route = DBFILESRouteObjects.DBFILESPaperUpdate;
  DBFILESPaperUpdateArg *arg = [[DBFILESPaperUpdateArg alloc] initWithPath:path
                                                              importFormat:importFormat
                                                           docUpdatePolicy:docUpdatePolicy
                                                             paperRevision:paperRevision];
  return [self.client requestUpload:route arg:arg inputStream:inputStream];
}

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

- (DBRpcTask *)permanentlyDelete:(NSString *)path parentRev:(NSString *)parentRev {
  DBRoute *route = DBFILESRouteObjects.DBFILESPermanentlyDelete;
  DBFILESDeleteArg *arg = [[DBFILESDeleteArg alloc] initWithPath:path parentRev:parentRev];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)propertiesAdd:(NSString *)path
              propertyGroups:(NSArray<DBFILEPROPERTIESPropertyGroup *> *)propertyGroups {
  DBRoute *route = DBFILESRouteObjects.DBFILESPropertiesAdd;
  DBFILEPROPERTIESAddPropertiesArg *arg =
      [[DBFILEPROPERTIESAddPropertiesArg alloc] initWithPath:path propertyGroups:propertyGroups];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)propertiesOverwrite:(NSString *)path
                    propertyGroups:(NSArray<DBFILEPROPERTIESPropertyGroup *> *)propertyGroups {
  DBRoute *route = DBFILESRouteObjects.DBFILESPropertiesOverwrite;
  DBFILEPROPERTIESOverwritePropertyGroupArg *arg =
      [[DBFILEPROPERTIESOverwritePropertyGroupArg alloc] initWithPath:path propertyGroups:propertyGroups];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)propertiesRemove:(NSString *)path propertyTemplateIds:(NSArray<NSString *> *)propertyTemplateIds {
  DBRoute *route = DBFILESRouteObjects.DBFILESPropertiesRemove;
  DBFILEPROPERTIESRemovePropertiesArg *arg =
      [[DBFILEPROPERTIESRemovePropertiesArg alloc] initWithPath:path propertyTemplateIds:propertyTemplateIds];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)propertiesTemplateGet:(NSString *)templateId {
  DBRoute *route = DBFILESRouteObjects.DBFILESPropertiesTemplateGet;
  DBFILEPROPERTIESGetTemplateArg *arg = [[DBFILEPROPERTIESGetTemplateArg alloc] initWithTemplateId:templateId];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)propertiesTemplateList {
  DBRoute *route = DBFILESRouteObjects.DBFILESPropertiesTemplateList;
  return [self.client requestRpc:route arg:nil];
}

- (DBRpcTask *)propertiesUpdate:(NSString *)path
           updatePropertyGroups:(NSArray<DBFILEPROPERTIESPropertyGroupUpdate *> *)updatePropertyGroups {
  DBRoute *route = DBFILESRouteObjects.DBFILESPropertiesUpdate;
  DBFILEPROPERTIESUpdatePropertiesArg *arg =
      [[DBFILEPROPERTIESUpdatePropertiesArg alloc] initWithPath:path updatePropertyGroups:updatePropertyGroups];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)restore:(NSString *)path rev:(NSString *)rev {
  DBRoute *route = DBFILESRouteObjects.DBFILESRestore;
  DBFILESRestoreArg *arg = [[DBFILESRestoreArg alloc] initWithPath:path rev:rev];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)saveUrl:(NSString *)path url:(NSString *)url {
  DBRoute *route = DBFILESRouteObjects.DBFILESSaveUrl;
  DBFILESSaveUrlArg *arg = [[DBFILESSaveUrlArg alloc] initWithPath:path url:url];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)saveUrlCheckJobStatus:(NSString *)asyncJobId {
  DBRoute *route = DBFILESRouteObjects.DBFILESSaveUrlCheckJobStatus;
  DBASYNCPollArg *arg = [[DBASYNCPollArg alloc] initWithAsyncJobId:asyncJobId];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)search:(NSString *)path query:(NSString *)query {
  DBRoute *route = DBFILESRouteObjects.DBFILESSearch;
  DBFILESSearchArg *arg = [[DBFILESSearchArg alloc] initWithPath:path query:query];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)search:(NSString *)path
                query:(NSString *)query
                start:(NSNumber *)start
           maxResults:(NSNumber *)maxResults
                 mode:(DBFILESSearchMode *)mode {
  DBRoute *route = DBFILESRouteObjects.DBFILESSearch;
  DBFILESSearchArg *arg =
      [[DBFILESSearchArg alloc] initWithPath:path query:query start:start maxResults:maxResults mode:mode];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)searchV2:(NSString *)query {
  DBRoute *route = DBFILESRouteObjects.DBFILESSearchV2;
  DBFILESSearchV2Arg *arg = [[DBFILESSearchV2Arg alloc] initWithQuery:query];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)searchV2:(NSString *)query
                options:(DBFILESSearchOptions *)options
      matchFieldOptions:(DBFILESSearchMatchFieldOptions *)matchFieldOptions
      includeHighlights:(NSNumber *)includeHighlights {
  DBRoute *route = DBFILESRouteObjects.DBFILESSearchV2;
  DBFILESSearchV2Arg *arg = [[DBFILESSearchV2Arg alloc] initWithQuery:query
                                                              options:options
                                                    matchFieldOptions:matchFieldOptions
                                                    includeHighlights:includeHighlights];
  return [self.client requestRpc:route arg:arg];
}

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

- (DBRpcTask *)tagsAdd:(NSString *)path tagText:(NSString *)tagText {
  DBRoute *route = DBFILESRouteObjects.DBFILESTagsAdd;
  DBFILESAddTagArg *arg = [[DBFILESAddTagArg alloc] initWithPath:path tagText:tagText];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)tagsGet:(NSArray<NSString *> *)paths {
  DBRoute *route = DBFILESRouteObjects.DBFILESTagsGet;
  DBFILESGetTagsArg *arg = [[DBFILESGetTagsArg alloc] initWithPaths:paths];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)tagsRemove:(NSString *)path tagText:(NSString *)tagText {
  DBRoute *route = DBFILESRouteObjects.DBFILESTagsRemove;
  DBFILESRemoveTagArg *arg = [[DBFILESRemoveTagArg alloc] initWithPath:path tagText:tagText];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)unlockFileBatch:(NSArray<DBFILESUnlockFileArg *> *)entries {
  DBRoute *route = DBFILESRouteObjects.DBFILESUnlockFileBatch;
  DBFILESUnlockFileBatchArg *arg = [[DBFILESUnlockFileBatchArg alloc] initWithEntries:entries];
  return [self.client requestRpc:route arg:arg];
}

- (DBUploadTask *)uploadUrl:(NSString *)path inputUrl:(NSString *)inputUrl {
  DBRoute *route = DBFILESRouteObjects.DBFILESUpload;
  DBFILESUploadArg *arg = [[DBFILESUploadArg alloc] initWithPath:path];
  return [self.client requestUpload:route arg:arg inputUrl:inputUrl];
}

- (DBUploadTask *)uploadUrl:(NSString *)path
                       mode:(DBFILESWriteMode *)mode
                 autorename:(NSNumber *)autorename
             clientModified:(NSDate *)clientModified
                       mute:(NSNumber *)mute
             propertyGroups:(NSArray<DBFILEPROPERTIESPropertyGroup *> *)propertyGroups
             strictConflict:(NSNumber *)strictConflict
                contentHash:(NSString *)contentHash
                   inputUrl:(NSString *)inputUrl {
  DBRoute *route = DBFILESRouteObjects.DBFILESUpload;
  DBFILESUploadArg *arg = [[DBFILESUploadArg alloc] initWithPath:path
                                                            mode:mode
                                                      autorename:autorename
                                                  clientModified:clientModified
                                                            mute:mute
                                                  propertyGroups:propertyGroups
                                                  strictConflict:strictConflict
                                                     contentHash:contentHash];
  return [self.client requestUpload:route arg:arg inputUrl:inputUrl];
}

- (DBUploadTask *)uploadData:(NSString *)path inputData:(NSData *)inputData {
  DBRoute *route = DBFILESRouteObjects.DBFILESUpload;
  DBFILESUploadArg *arg = [[DBFILESUploadArg alloc] initWithPath:path];
  return [self.client requestUpload:route arg:arg inputData:inputData];
}

- (DBUploadTask *)uploadData:(NSString *)path
                        mode:(DBFILESWriteMode *)mode
                  autorename:(NSNumber *)autorename
              clientModified:(NSDate *)clientModified
                        mute:(NSNumber *)mute
              propertyGroups:(NSArray<DBFILEPROPERTIESPropertyGroup *> *)propertyGroups
              strictConflict:(NSNumber *)strictConflict
                 contentHash:(NSString *)contentHash
                   inputData:(NSData *)inputData {
  DBRoute *route = DBFILESRouteObjects.DBFILESUpload;
  DBFILESUploadArg *arg = [[DBFILESUploadArg alloc] initWithPath:path
                                                            mode:mode
                                                      autorename:autorename
                                                  clientModified:clientModified
                                                            mute:mute
                                                  propertyGroups:propertyGroups
                                                  strictConflict:strictConflict
                                                     contentHash:contentHash];
  return [self.client requestUpload:route arg:arg inputData:inputData];
}

- (DBUploadTask *)uploadStream:(NSString *)path inputStream:(NSInputStream *)inputStream {
  DBRoute *route = DBFILESRouteObjects.DBFILESUpload;
  DBFILESUploadArg *arg = [[DBFILESUploadArg alloc] initWithPath:path];
  return [self.client requestUpload:route arg:arg inputStream:inputStream];
}

- (DBUploadTask *)uploadStream:(NSString *)path
                          mode:(DBFILESWriteMode *)mode
                    autorename:(NSNumber *)autorename
                clientModified:(NSDate *)clientModified
                          mute:(NSNumber *)mute
                propertyGroups:(NSArray<DBFILEPROPERTIESPropertyGroup *> *)propertyGroups
                strictConflict:(NSNumber *)strictConflict
                   contentHash:(NSString *)contentHash
                   inputStream:(NSInputStream *)inputStream {
  DBRoute *route = DBFILESRouteObjects.DBFILESUpload;
  DBFILESUploadArg *arg = [[DBFILESUploadArg alloc] initWithPath:path
                                                            mode:mode
                                                      autorename:autorename
                                                  clientModified:clientModified
                                                            mute:mute
                                                  propertyGroups:propertyGroups
                                                  strictConflict:strictConflict
                                                     contentHash:contentHash];
  return [self.client requestUpload:route arg:arg inputStream:inputStream];
}

- (DBUploadTask *)uploadSessionAppendV2Url:(DBFILESUploadSessionCursor *)cursor inputUrl:(NSString *)inputUrl {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionAppendV2;
  DBFILESUploadSessionAppendArg *arg = [[DBFILESUploadSessionAppendArg alloc] initWithCursor:cursor];
  return [self.client requestUpload:route arg:arg inputUrl:inputUrl];
}

- (DBUploadTask *)uploadSessionAppendV2Url:(DBFILESUploadSessionCursor *)cursor
                                     close:(NSNumber *)close
                               contentHash:(NSString *)contentHash
                                  inputUrl:(NSString *)inputUrl {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionAppendV2;
  DBFILESUploadSessionAppendArg *arg =
      [[DBFILESUploadSessionAppendArg alloc] initWithCursor:cursor close:close contentHash:contentHash];
  return [self.client requestUpload:route arg:arg inputUrl:inputUrl];
}

- (DBUploadTask *)uploadSessionAppendV2Data:(DBFILESUploadSessionCursor *)cursor inputData:(NSData *)inputData {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionAppendV2;
  DBFILESUploadSessionAppendArg *arg = [[DBFILESUploadSessionAppendArg alloc] initWithCursor:cursor];
  return [self.client requestUpload:route arg:arg inputData:inputData];
}

- (DBUploadTask *)uploadSessionAppendV2Data:(DBFILESUploadSessionCursor *)cursor
                                      close:(NSNumber *)close
                                contentHash:(NSString *)contentHash
                                  inputData:(NSData *)inputData {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionAppendV2;
  DBFILESUploadSessionAppendArg *arg =
      [[DBFILESUploadSessionAppendArg alloc] initWithCursor:cursor close:close contentHash:contentHash];
  return [self.client requestUpload:route arg:arg inputData:inputData];
}

- (DBUploadTask *)uploadSessionAppendV2Stream:(DBFILESUploadSessionCursor *)cursor
                                  inputStream:(NSInputStream *)inputStream {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionAppendV2;
  DBFILESUploadSessionAppendArg *arg = [[DBFILESUploadSessionAppendArg alloc] initWithCursor:cursor];
  return [self.client requestUpload:route arg:arg inputStream:inputStream];
}

- (DBUploadTask *)uploadSessionAppendV2Stream:(DBFILESUploadSessionCursor *)cursor
                                        close:(NSNumber *)close
                                  contentHash:(NSString *)contentHash
                                  inputStream:(NSInputStream *)inputStream {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionAppendV2;
  DBFILESUploadSessionAppendArg *arg =
      [[DBFILESUploadSessionAppendArg alloc] initWithCursor:cursor close:close contentHash:contentHash];
  return [self.client requestUpload:route arg:arg inputStream:inputStream];
}

- (DBUploadTask *)uploadSessionAppendUrl:(NSString *)sessionId offset:(NSNumber *)offset inputUrl:(NSString *)inputUrl {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionAppend;
  DBFILESUploadSessionCursor *arg = [[DBFILESUploadSessionCursor alloc] initWithSessionId:sessionId offset:offset];
  return [self.client requestUpload:route arg:arg inputUrl:inputUrl];
}

- (DBUploadTask *)uploadSessionAppendData:(NSString *)sessionId
                                   offset:(NSNumber *)offset
                                inputData:(NSData *)inputData {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionAppend;
  DBFILESUploadSessionCursor *arg = [[DBFILESUploadSessionCursor alloc] initWithSessionId:sessionId offset:offset];
  return [self.client requestUpload:route arg:arg inputData:inputData];
}

- (DBUploadTask *)uploadSessionAppendStream:(NSString *)sessionId
                                     offset:(NSNumber *)offset
                                inputStream:(NSInputStream *)inputStream {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionAppend;
  DBFILESUploadSessionCursor *arg = [[DBFILESUploadSessionCursor alloc] initWithSessionId:sessionId offset:offset];
  return [self.client requestUpload:route arg:arg inputStream:inputStream];
}

- (DBUploadTask *)uploadSessionFinishUrl:(DBFILESUploadSessionCursor *)cursor
                                  commit:(DBFILESCommitInfo *)commit
                                inputUrl:(NSString *)inputUrl {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionFinish;
  DBFILESUploadSessionFinishArg *arg = [[DBFILESUploadSessionFinishArg alloc] initWithCursor:cursor commit:commit];
  return [self.client requestUpload:route arg:arg inputUrl:inputUrl];
}

- (DBUploadTask *)uploadSessionFinishUrl:(DBFILESUploadSessionCursor *)cursor
                                  commit:(DBFILESCommitInfo *)commit
                             contentHash:(NSString *)contentHash
                                inputUrl:(NSString *)inputUrl {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionFinish;
  DBFILESUploadSessionFinishArg *arg =
      [[DBFILESUploadSessionFinishArg alloc] initWithCursor:cursor commit:commit contentHash:contentHash];
  return [self.client requestUpload:route arg:arg inputUrl:inputUrl];
}

- (DBUploadTask *)uploadSessionFinishData:(DBFILESUploadSessionCursor *)cursor
                                   commit:(DBFILESCommitInfo *)commit
                                inputData:(NSData *)inputData {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionFinish;
  DBFILESUploadSessionFinishArg *arg = [[DBFILESUploadSessionFinishArg alloc] initWithCursor:cursor commit:commit];
  return [self.client requestUpload:route arg:arg inputData:inputData];
}

- (DBUploadTask *)uploadSessionFinishData:(DBFILESUploadSessionCursor *)cursor
                                   commit:(DBFILESCommitInfo *)commit
                              contentHash:(NSString *)contentHash
                                inputData:(NSData *)inputData {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionFinish;
  DBFILESUploadSessionFinishArg *arg =
      [[DBFILESUploadSessionFinishArg alloc] initWithCursor:cursor commit:commit contentHash:contentHash];
  return [self.client requestUpload:route arg:arg inputData:inputData];
}

- (DBUploadTask *)uploadSessionFinishStream:(DBFILESUploadSessionCursor *)cursor
                                     commit:(DBFILESCommitInfo *)commit
                                inputStream:(NSInputStream *)inputStream {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionFinish;
  DBFILESUploadSessionFinishArg *arg = [[DBFILESUploadSessionFinishArg alloc] initWithCursor:cursor commit:commit];
  return [self.client requestUpload:route arg:arg inputStream:inputStream];
}

- (DBUploadTask *)uploadSessionFinishStream:(DBFILESUploadSessionCursor *)cursor
                                     commit:(DBFILESCommitInfo *)commit
                                contentHash:(NSString *)contentHash
                                inputStream:(NSInputStream *)inputStream {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionFinish;
  DBFILESUploadSessionFinishArg *arg =
      [[DBFILESUploadSessionFinishArg alloc] initWithCursor:cursor commit:commit contentHash:contentHash];
  return [self.client requestUpload:route arg:arg inputStream:inputStream];
}

- (DBRpcTask *)uploadSessionFinishBatch:(NSArray<DBFILESUploadSessionFinishArg *> *)entries {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionFinishBatch;
  DBFILESUploadSessionFinishBatchArg *arg = [[DBFILESUploadSessionFinishBatchArg alloc] initWithEntries:entries];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)uploadSessionFinishBatchV2:(NSArray<DBFILESUploadSessionFinishArg *> *)entries {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionFinishBatchV2;
  DBFILESUploadSessionFinishBatchArg *arg = [[DBFILESUploadSessionFinishBatchArg alloc] initWithEntries:entries];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)uploadSessionFinishBatchCheck:(NSString *)asyncJobId {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionFinishBatchCheck;
  DBASYNCPollArg *arg = [[DBASYNCPollArg alloc] initWithAsyncJobId:asyncJobId];
  return [self.client requestRpc:route arg:arg];
}

- (DBUploadTask *)uploadSessionStartUrl:(NSString *)inputUrl {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionStart;
  DBFILESUploadSessionStartArg *arg = [[DBFILESUploadSessionStartArg alloc] initDefault];
  return [self.client requestUpload:route arg:arg inputUrl:inputUrl];
}

- (DBUploadTask *)uploadSessionStartUrl:(NSNumber *)close
                            sessionType:(DBFILESUploadSessionType *)sessionType
                            contentHash:(NSString *)contentHash
                               inputUrl:(NSString *)inputUrl {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionStart;
  DBFILESUploadSessionStartArg *arg =
      [[DBFILESUploadSessionStartArg alloc] initWithClose:close sessionType:sessionType contentHash:contentHash];
  return [self.client requestUpload:route arg:arg inputUrl:inputUrl];
}

- (DBUploadTask *)uploadSessionStartData:(NSData *)inputData {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionStart;
  DBFILESUploadSessionStartArg *arg = [[DBFILESUploadSessionStartArg alloc] initDefault];
  return [self.client requestUpload:route arg:arg inputData:inputData];
}

- (DBUploadTask *)uploadSessionStartData:(NSNumber *)close
                             sessionType:(DBFILESUploadSessionType *)sessionType
                             contentHash:(NSString *)contentHash
                               inputData:(NSData *)inputData {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionStart;
  DBFILESUploadSessionStartArg *arg =
      [[DBFILESUploadSessionStartArg alloc] initWithClose:close sessionType:sessionType contentHash:contentHash];
  return [self.client requestUpload:route arg:arg inputData:inputData];
}

- (DBUploadTask *)uploadSessionStartStream:(NSInputStream *)inputStream {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionStart;
  DBFILESUploadSessionStartArg *arg = [[DBFILESUploadSessionStartArg alloc] initDefault];
  return [self.client requestUpload:route arg:arg inputStream:inputStream];
}

- (DBUploadTask *)uploadSessionStartStream:(NSNumber *)close
                               sessionType:(DBFILESUploadSessionType *)sessionType
                               contentHash:(NSString *)contentHash
                               inputStream:(NSInputStream *)inputStream {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionStart;
  DBFILESUploadSessionStartArg *arg =
      [[DBFILESUploadSessionStartArg alloc] initWithClose:close sessionType:sessionType contentHash:contentHash];
  return [self.client requestUpload:route arg:arg inputStream:inputStream];
}

- (DBRpcTask *)uploadSessionStartBatch:(NSNumber *)numSessions {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionStartBatch;
  DBFILESUploadSessionStartBatchArg *arg = [[DBFILESUploadSessionStartBatchArg alloc] initWithNumSessions:numSessions];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)uploadSessionStartBatch:(NSNumber *)numSessions sessionType:(DBFILESUploadSessionType *)sessionType {
  DBRoute *route = DBFILESRouteObjects.DBFILESUploadSessionStartBatch;
  DBFILESUploadSessionStartBatchArg *arg =
      [[DBFILESUploadSessionStartBatchArg alloc] initWithNumSessions:numSessions sessionType:sessionType];
  return [self.client requestRpc:route arg:arg];
}

@end
