text: ///
  /// Copyright (c) 2016 Dropbox, Inc. All rights reserved.
  ///
  /// Auto-generated by Stone, do not modify.
  ///
  
  #import <Foundation/Foundation.h>
  
  #import "DBTasks.h"
  
  @class DBASYNCPollError;
  @class DBFILESAddPropertiesError;
  @class DBFILESAlphaGetMetadataError;
  @class DBFILESCommitInfo;
  @class DBFILESCreateFolderError;
  @class DBFILESDeleteArg;
  @class DBFILESDeleteBatchError;
  @class DBFILESDeleteBatchJobStatus;
  @class DBFILESDeleteBatchLaunch;
  @class DBFILESDeleteBatchResult;
  @class DBFILESDeleteError;
  @class DBFILESDownloadError;
  @class DBFILESFileMetadata;
  @class DBFILESFileSharingInfo;
  @class DBFILESFolderMetadata;
  @class DBFILESFolderSharingInfo;
  @class DBFILESGetCopyReferenceError;
  @class DBFILESGetCopyReferenceResult;
  @class DBFILESGetMetadataError;
  @class DBFILESGetTemporaryLinkError;
  @class DBFILESGetTemporaryLinkResult;
  @class DBFILESInvalidPropertyGroupError;
  @class DBFILESListFolderContinueError;
  @class DBFILESListFolderError;
  @class DBFILESListFolderGetLatestCursorResult;
  @class DBFILESListFolderLongpollError;
  @class DBFILESListFolderLongpollResult;
  @class DBFILESListFolderResult;
  @class DBFILESListRevisionsError;
  @class DBFILESListRevisionsResult;
  @class DBFILESLookUpPropertiesError;
  @class DBFILESLookupError;
  @class DBFILESMediaInfo;
  @class DBFILESMetadata;
  @class DBFILESPreviewError;
  @class DBFILESPropertyGroupUpdate;
  @class DBFILESRelocationBatchError;
  @class DBFILESRelocationBatchJobStatus;
  @class DBFILESRelocationBatchLaunch;
  @class DBFILESRelocationBatchResult;
  @class DBFILESRelocationError;
  @class DBFILESRelocationPath;
  @class DBFILESRemovePropertiesError;
  @class DBFILESRestoreError;
  @class DBFILESSaveCopyReferenceError;
  @class DBFILESSaveCopyReferenceResult;
  @class DBFILESSaveUrlError;
  @class DBFILESSaveUrlJobStatus;
  @class DBFILESSaveUrlResult;
  @class DBFILESSearchError;
  @class DBFILESSearchMatch;
  @class DBFILESSearchMode;
  @class DBFILESSearchResult;
  @class DBFILESThumbnailError;
  @class DBFILESThumbnailFormat;
  @class DBFILESThumbnailSize;
  @class DBFILESUpdatePropertiesError;
  @class DBFILESUploadError;
  @class DBFILESUploadErrorWithProperties;
  @class DBFILESUploadSessionCursor;
  @class DBFILESUploadSessionFinishArg;
  @class DBFILESUploadSessionFinishBatchJobStatus;
  @class DBFILESUploadSessionFinishBatchLaunch;
  @class DBFILESUploadSessionFinishBatchResult;
  @class DBFILESUploadSessionFinishError;
  @class DBFILESUploadSessionLookupError;
  @class DBFILESUploadSessionOffsetError;
  @class DBFILESUploadSessionStartResult;
  @class DBFILESUploadWriteFailed;
  @class DBFILESWriteError;
  @class DBFILESWriteMode;
  @class DBNilObject;
  @class DBPROPERTIESGetPropertyTemplateResult;
  @class DBPROPERTIESListPropertyTemplateIds;
  @class DBPROPERTIESPropertyField;
  @class DBPROPERTIESPropertyFieldTemplate;
  @class DBPROPERTIESPropertyGroup;
  @class DBPROPERTIESPropertyTemplateError;
  
  @protocol DBTransportClient;
  
  ///
  /// Routes for the `Files` namespace
  ///
  @interface DBFILESUserAuthRoutes : NSObject
  
  /// An instance of the networking client that each route will use to submit a
  /// request.
  @property (nonatomic, readonly) id<DBTransportClient> _Nonnull client;
  
  /// Initializes the `DBFILESUserAuthRoutes` namespace container object with a
  /// networking client.
  - (nonnull instancetype)init:(id<DBTransportClient> _Nonnull)client;
  
  ///
  /// Returns the metadata for a file or folder. This is an alpha endpoint compatible with the properties API. Note:
  /// Metadata for the root folder is unsupported.
  ///
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESMetadata` object on success or a
  /// `DBFILESAlphaGetMetadataError` object on failure.
  ///
  - (DBRpcTask<DBFILESMetadata *, DBFILESAlphaGetMetadataError *> * _Nonnull)alphaGetMetadata:(NSString * _Nonnull)path;
  
  ///
  /// Returns the metadata for a file or folder. This is an alpha endpoint compatible with the properties API. Note:
  /// Metadata for the root folder is unsupported.
  ///
  /// @param includePropertyTemplates If set to a valid list of template IDs, `propertyGroups` in `DBFILESFileMetadata` is
  /// set for files with custom properties.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESMetadata` object on success or a
  /// `DBFILESAlphaGetMetadataError` object on failure.
  ///
  - (DBRpcTask<DBFILESMetadata *, DBFILESAlphaGetMetadataError *> * _Nonnull)
                 alphaGetMetadata:(NSString * _Nonnull)path
                 includeMediaInfo:(NSNumber * _Nullable)includeMediaInfo
                   includeDeleted:(NSNumber * _Nullable)includeDeleted
  includeHasExplicitSharedMembers:(NSNumber * _Nullable)includeHasExplicitSharedMembers
         includePropertyTemplates:(NSArray<NSString *> * _Nullable)includePropertyTemplates;
  
  ///
  /// Create a new file with the contents provided in the request. Note that this endpoint is part of the properties API
  /// alpha and is slightly different from `upload`. Do not use this to upload a file larger than 150 MB. Instead, create
  /// an upload session with `uploadSessionStart`.
  ///
  /// @param inputUrl The file to upload, as an NSString * object.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESUploadErrorWithProperties` object on failure.
  ///
  - (DBUploadTask<DBFILESFileMetadata *, DBFILESUploadErrorWithProperties *> * _Nonnull)
  alphaUploadUrl:(NSString * _Nonnull)path
        inputUrl:(NSString * _Nonnull)inputUrl;
  
  ///
  /// Create a new file with the contents provided in the request. Note that this endpoint is part of the properties API
  /// alpha and is slightly different from `upload`. Do not use this to upload a file larger than 150 MB. Instead, create
  /// an upload session with `uploadSessionStart`.
  ///
  /// @param propertyGroups List of custom properties to add to file.
  /// @param inputUrl The file to upload, as an NSString * object.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESUploadErrorWithProperties` object on failure.
  ///
  - (DBUploadTask<DBFILESFileMetadata *, DBFILESUploadErrorWithProperties *> * _Nonnull)
  alphaUploadUrl:(NSString * _Nonnull)path
            mode:(DBFILESWriteMode * _Nullable)mode
      autorename:(NSNumber * _Nullable)autorename
  clientModified:(NSDate * _Nullable)clientModified
            mute:(NSNumber * _Nullable)mute
  propertyGroups:(NSArray<DBPROPERTIESPropertyGroup *> * _Nullable)propertyGroups
        inputUrl:(NSString * _Nonnull)inputUrl;
  
  ///
  /// Create a new file with the contents provided in the request. Note that this endpoint is part of the properties API
  /// alpha and is slightly different from `upload`. Do not use this to upload a file larger than 150 MB. Instead, create
  /// an upload session with `uploadSessionStart`.
  ///
  /// @param inputData The file to upload, as an NSData * object.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESUploadErrorWithProperties` object on failure.
  ///
  - (DBUploadTask<DBFILESFileMetadata *, DBFILESUploadErrorWithProperties *> * _Nonnull)
  alphaUploadData:(NSString * _Nonnull)path
        inputData:(NSData * _Nonnull)inputData;
  
  ///
  /// Create a new file with the contents provided in the request. Note that this endpoint is part of the properties API
  /// alpha and is slightly different from `upload`. Do not use this to upload a file larger than 150 MB. Instead, create
  /// an upload session with `uploadSessionStart`.
  ///
  /// @param propertyGroups List of custom properties to add to file.
  /// @param inputData The file to upload, as an NSData * object.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESUploadErrorWithProperties` object on failure.
  ///
  - (DBUploadTask<DBFILESFileMetadata *, DBFILESUploadErrorWithProperties *> * _Nonnull)
  alphaUploadData:(NSString * _Nonnull)path
             mode:(DBFILESWriteMode * _Nullable)mode
       autorename:(NSNumber * _Nullable)autorename
   clientModified:(NSDate * _Nullable)clientModified
             mute:(NSNumber * _Nullable)mute
   propertyGroups:(NSArray<DBPROPERTIESPropertyGroup *> * _Nullable)propertyGroups
        inputData:(NSData * _Nonnull)inputData;
  
  ///
  /// Create a new file with the contents provided in the request. Note that this endpoint is part of the properties API
  /// alpha and is slightly different from `upload`. Do not use this to upload a file larger than 150 MB. Instead, create
  /// an upload session with `uploadSessionStart`.
  ///
  /// @param inputStream The file to upload, as an NSInputStream * object.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESUploadErrorWithProperties` object on failure.
  ///
  - (DBUploadTask<DBFILESFileMetadata *, DBFILESUploadErrorWithProperties *> * _Nonnull)
  alphaUploadStream:(NSString * _Nonnull)path
        inputStream:(NSInputStream * _Nonnull)inputStream;
  
  ///
  /// Create a new file with the contents provided in the request. Note that this endpoint is part of the properties API
  /// alpha and is slightly different from `upload`. Do not use this to upload a file larger than 150 MB. Instead, create
  /// an upload session with `uploadSessionStart`.
  ///
  /// @param propertyGroups List of custom properties to add to file.
  /// @param inputStream The file to upload, as an NSInputStream * object.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESUploadErrorWithProperties` object on failure.
  ///
  - (DBUploadTask<DBFILESFileMetadata *, DBFILESUploadErrorWithProperties *> * _Nonnull)
  alphaUploadStream:(NSString * _Nonnull)path
               mode:(DBFILESWriteMode * _Nullable)mode
         autorename:(NSNumber * _Nullable)autorename
     clientModified:(NSDate * _Nullable)clientModified
               mute:(NSNumber * _Nullable)mute
     propertyGroups:(NSArray<DBPROPERTIESPropertyGroup *> * _Nullable)propertyGroups
        inputStream:(NSInputStream * _Nonnull)inputStream;
  
  ///
  /// Copy a file or folder to a different location in the user's Dropbox. If the source path is a folder all its contents
  /// will be copied.
  ///
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESMetadata` object on success or a
  /// `DBFILESRelocationError` object on failure.
  ///
  - (DBRpcTask<DBFILESMetadata *, DBFILESRelocationError *> * _Nonnull)dCopy:(NSString * _Nonnull)fromPath
                                                                     toPath:(NSString * _Nonnull)toPath;
  
  ///
  /// Copy a file or folder to a different location in the user's Dropbox. If the source path is a folder all its contents
  /// will be copied.
  ///
  /// @param allowSharedFolder If true, `dCopy` will copy contents in shared folder, otherwise `cantCopySharedFolder` in
  /// `DBFILESRelocationError` will be returned if fromPath contains shared folder. This field is always true for `move`.
  /// @param autorename If there's a conflict, have the Dropbox server try to autorename the file to avoid the conflict.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESMetadata` object on success or a
  /// `DBFILESRelocationError` object on failure.
  ///
  - (DBRpcTask<DBFILESMetadata *, DBFILESRelocationError *> * _Nonnull)dCopy:(NSString * _Nonnull)fromPath
                                                                     toPath:(NSString * _Nonnull)toPath
                                                          allowSharedFolder:(NSNumber * _Nullable)allowSharedFolder
                                                                 autorename:(NSNumber * _Nullable)autorename;
  
  ///
  /// Copy multiple files or folders to different locations at once in the user's Dropbox. If `allowSharedFolder` in
  /// `DBFILESRelocationBatchArg` is false, this route is atomic. If on entry failes, the whole transaction will abort. If
  /// `allowSharedFolder` in `DBFILESRelocationBatchArg` is true, not atomicity is guaranteed, but you will be able to
  /// copy the contents of shared folders to new locations. This route will return job ID immediately and do the async
  /// copy job in background. Please use `dCopyBatchCheck` to check the job status.
  ///
  /// @param entries List of entries to be moved or copied. Each entry is RelocationPath.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESRelocationBatchLaunch` object on success or
  /// a `void` object on failure.
  ///
  - (DBRpcTask<DBFILESRelocationBatchLaunch *, DBNilObject *> * _Nonnull)dCopyBatch:
      (NSArray<DBFILESRelocationPath *> * _Nonnull)entries;
  
  ///
  /// Copy multiple files or folders to different locations at once in the user's Dropbox. If `allowSharedFolder` in
  /// `DBFILESRelocationBatchArg` is false, this route is atomic. If on entry failes, the whole transaction will abort. If
  /// `allowSharedFolder` in `DBFILESRelocationBatchArg` is true, not atomicity is guaranteed, but you will be able to
  /// copy the contents of shared folders to new locations. This route will return job ID immediately and do the async
  /// copy job in background. Please use `dCopyBatchCheck` to check the job status.
  ///
  /// @param entries List of entries to be moved or copied. Each entry is RelocationPath.
  /// @param allowSharedFolder If true, `dCopyBatch` will copy contents in shared folder, otherwise `cantCopySharedFolder`
  /// in `DBFILESRelocationError` will be returned if `fromPath` in `DBFILESRelocationPath` contains shared folder.  This
  /// field is always true for `moveBatch`.
  /// @param autorename If there's a conflict with any file, have the Dropbox server try to autorename that file to avoid
  /// the conflict.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESRelocationBatchLaunch` object on success or
  /// a `void` object on failure.
  ///
  - (DBRpcTask<DBFILESRelocationBatchLaunch *, DBNilObject *> * _Nonnull)
         dCopyBatch:(NSArray<DBFILESRelocationPath *> * _Nonnull)entries
  allowSharedFolder:(NSNumber * _Nullable)allowSharedFolder
         autorename:(NSNumber * _Nullable)autorename;
  
  ///
  /// Returns the status of an asynchronous job for `dCopyBatch`. If success, it returns list of results for each entry.
  ///
  /// @param asyncJobId Id of the asynchronous job. This is the value of a response returned from the method that launched
  /// the job.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESRelocationBatchJobStatus` object on success
  /// or a `DBASYNCPollError` object on failure.
  ///
  - (DBRpcTask<DBFILESRelocationBatchJobStatus *, DBASYNCPollError *> * _Nonnull)dCopyBatchCheck:
      (NSString * _Nonnull)asyncJobId;
  
  ///
  /// Get a copy reference to a file or folder. This reference string can be used to save that file or folder to another
  /// user's Dropbox by passing it to `dCopyReferenceSave`.
  ///
  /// @param path The path to the file or folder you want to get a copy reference to.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESGetCopyReferenceResult` object on success
  /// or a `DBFILESGetCopyReferenceError` object on failure.
  ///
  - (DBRpcTask<DBFILESGetCopyReferenceResult *, DBFILESGetCopyReferenceError *> * _Nonnull)dCopyReferenceGet:
      (NSString * _Nonnull)path;
  
  ///
  /// Save a copy reference returned by `dCopyReferenceGet` to the user's Dropbox.
  ///
  /// @param dCopyReference A copy reference returned by `dCopyReferenceGet`.
  /// @param path Path in the user's Dropbox that is the destination.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESSaveCopyReferenceResult` object on success
  /// or a `DBFILESSaveCopyReferenceError` object on failure.
  ///
  - (DBRpcTask<DBFILESSaveCopyReferenceResult *, DBFILESSaveCopyReferenceError *> * _Nonnull)
  dCopyReferenceSave:(NSString * _Nonnull)dCopyReference
                path:(NSString * _Nonnull)path;
  
  ///
  /// Create a folder at a given path.
  ///
  /// @param path Path in the user's Dropbox to create.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFolderMetadata` object on success or a
  /// `DBFILESCreateFolderError` object on failure.
  ///
  - (DBRpcTask<DBFILESFolderMetadata *, DBFILESCreateFolderError *> * _Nonnull)createFolder:(NSString * _Nonnull)path;
  
  ///
  /// Create a folder at a given path.
  ///
  /// @param path Path in the user's Dropbox to create.
  /// @param autorename If there's a conflict, have the Dropbox server try to autorename the folder to avoid the conflict.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFolderMetadata` object on success or a
  /// `DBFILESCreateFolderError` object on failure.
  ///
  - (DBRpcTask<DBFILESFolderMetadata *, DBFILESCreateFolderError *> * _Nonnull)createFolder:(NSString * _Nonnull)path
                                                                                autorename:
                                                                                    (NSNumber * _Nullable)autorename;
  
  ///
  /// Delete the file or folder at a given path. If the path is a folder, all its contents will be deleted too. A
  /// successful response indicates that the file or folder was deleted. The returned metadata will be the corresponding
  /// FileMetadata or FolderMetadata for the item at time of deletion, and not a DeletedMetadata object.
  ///
  /// @param path Path in the user's Dropbox to delete.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESMetadata` object on success or a
  /// `DBFILESDeleteError` object on failure.
  ///
  - (DBRpcTask<DBFILESMetadata *, DBFILESDeleteError *> * _Nonnull)delete_:(NSString * _Nonnull)path;
  
  ///
  /// Delete multiple files/folders at once. This route is asynchronous, which returns a job ID immediately and runs the
  /// delete batch asynchronously. Use `deleteBatchCheck` to check the job status.
  ///
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESDeleteBatchLaunch` object on success or a
  /// `void` object on failure.
  ///
  - (DBRpcTask<DBFILESDeleteBatchLaunch *, DBNilObject *> * _Nonnull)deleteBatch:
      (NSArray<DBFILESDeleteArg *> * _Nonnull)entries;
  
  ///
  /// Returns the status of an asynchronous job for `deleteBatch`. If success, it returns list of result for each entry.
  ///
  /// @param asyncJobId Id of the asynchronous job. This is the value of a response returned from the method that launched
  /// the job.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESDeleteBatchJobStatus` object on success or
  /// a `DBASYNCPollError` object on failure.
  ///
  - (DBRpcTask<DBFILESDeleteBatchJobStatus *, DBASYNCPollError *> * _Nonnull)deleteBatchCheck:
      (NSString * _Nonnull)asyncJobId;
  
  ///
  /// Download a file from a user's Dropbox.
  ///
  /// @param path The path of the file to download.
  /// @param overwrite A boolean to set behavior in the event of a naming conflict. `YES` will overwrite conflicting file
  /// at destination. `NO` will take no action, resulting in an `NSError` returned to the response handler in the event of
  /// a file conflict.
  /// @param destination The file url of the desired download output location.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESDownloadError` object on failure.
  ///
  - (DBDownloadUrlTask<DBFILESFileMetadata *, DBFILESDownloadError *> * _Nonnull)downloadUrl:(NSString * _Nonnull)path
                                                                                  overwrite:(BOOL)overwrite
                                                                                destination:(NSURL * _Nonnull)destination;
  
  ///
  /// Download a file from a user's Dropbox.
  ///
  /// @param path The path of the file to download.
  /// @param rev Deprecated. Please specify revision in path instead.
  /// @param overwrite A boolean to set behavior in the event of a naming conflict. `YES` will overwrite conflicting file
  /// at destination. `NO` will take no action, resulting in an `NSError` returned to the response handler in the event of
  /// a file conflict.
  /// @param destination The file url of the desired download output location.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESDownloadError` object on failure.
  ///
  - (DBDownloadUrlTask<DBFILESFileMetadata *, DBFILESDownloadError *> * _Nonnull)downloadUrl:(NSString * _Nonnull)path
                                                                                        rev:(NSString * _Nullable)rev
                                                                                  overwrite:(BOOL)overwrite
                                                                                destination:(NSURL * _Nonnull)destination;
  
  ///
  /// Download a file from a user's Dropbox.
  ///
  /// @param path The path of the file to download.
  /// @param overwrite A boolean to set behavior in the event of a naming conflict. `YES` will overwrite conflicting file
  /// at destination. `NO` will take no action, resulting in an `NSError` returned to the response handler in the event of
  /// a file conflict.
  /// @param destination The file url of the desired download output location.
  /// @param byteOffsetStart For partial file download. Download file beginning from this starting byte position. Must
  /// include valid end range value.
  /// @param byteOffsetEnd For partial file download. Download file up until this ending byte position. Must include valid
  /// start range value.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESDownloadError` object on failure.
  ///
  - (DBDownloadUrlTask<DBFILESFileMetadata *, DBFILESDownloadError *> * _Nonnull)
      downloadUrl:(NSString * _Nonnull)path
        overwrite:(BOOL)overwrite
      destination:(NSURL * _Nonnull)destination
  byteOffsetStart:(NSNumber * _Nonnull)byteOffsetStart
    byteOffsetEnd:(NSNumber * _Nonnull)byteOffsetEnd;
  
  ///
  /// Download a file from a user's Dropbox.
  ///
  /// @param path The path of the file to download.
  /// @param rev Deprecated. Please specify revision in path instead.
  /// @param overwrite A boolean to set behavior in the event of a naming conflict. `YES` will overwrite conflicting file
  /// at destination. `NO` will take no action, resulting in an `NSError` returned to the response handler in the event of
  /// a file conflict.
  /// @param destination The file url of the desired download output location.
  /// @param byteOffsetStart For partial file download. Download file beginning from this starting byte position. Must
  /// include valid end range value.
  /// @param byteOffsetEnd For partial file download. Download file up until this ending byte position. Must include valid
  /// start range value.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESDownloadError` object on failure.
  ///
  - (DBDownloadUrlTask<DBFILESFileMetadata *, DBFILESDownloadError *> * _Nonnull)
      downloadUrl:(NSString * _Nonnull)path
              rev:(NSString * _Nullable)rev
        overwrite:(BOOL)overwrite
      destination:(NSURL * _Nonnull)destination
  byteOffsetStart:(NSNumber * _Nonnull)byteOffsetStart
    byteOffsetEnd:(NSNumber * _Nonnull)byteOffsetEnd;
  
  ///
  /// Download a file from a user's Dropbox.
  ///
  /// @param path The path of the file to download.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESDownloadError` object on failure.
  ///
  - (DBDownloadDataTask<DBFILESFileMetadata *, DBFILESDownloadError *> * _Nonnull)downloadData:(NSString * _Nonnull)path;
  
  ///
  /// Download a file from a user's Dropbox.
  ///
  /// @param path The path of the file to download.
  /// @param rev Deprecated. Please specify revision in path instead.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESDownloadError` object on failure.
  ///
  - (DBDownloadDataTask<DBFILESFileMetadata *, DBFILESDownloadError *> * _Nonnull)downloadData:(NSString * _Nonnull)path
                                                                                          rev:(NSString * _Nullable)rev;
  
  ///
  /// Download a file from a user's Dropbox.
  ///
  /// @param path The path of the file to download.
  /// @param byteOffsetStart For partial file download. Download file beginning from this starting byte position. Must
  /// include valid end range value.
  /// @param byteOffsetEnd For partial file download. Download file up until this ending byte position. Must include valid
  /// start range value.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESDownloadError` object on failure.
  ///
  - (DBDownloadDataTask<DBFILESFileMetadata *, DBFILESDownloadError *> * _Nonnull)
     downloadData:(NSString * _Nonnull)path
  byteOffsetStart:(NSNumber * _Nonnull)byteOffsetStart
    byteOffsetEnd:(NSNumber * _Nonnull)byteOffsetEnd;
  
  ///
  /// Download a file from a user's Dropbox.
  ///
  /// @param path The path of the file to download.
  /// @param rev Deprecated. Please specify revision in path instead.
  /// @param byteOffsetStart For partial file download. Download file beginning from this starting byte position. Must
  /// include valid end range value.
  /// @param byteOffsetEnd For partial file download. Download file up until this ending byte position. Must include valid
  /// start range value.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESDownloadError` object on failure.
  ///
  - (DBDownloadDataTask<DBFILESFileMetadata *, DBFILESDownloadError *> * _Nonnull)
     downloadData:(NSString * _Nonnull)path
              rev:(NSString * _Nullable)rev
  byteOffsetStart:(NSNumber * _Nonnull)byteOffsetStart
    byteOffsetEnd:(NSNumber * _Nonnull)byteOffsetEnd;
  
  ///
  /// Returns the metadata for a file or folder. Note: Metadata for the root folder is unsupported.
  ///
  /// @param path The path of a file or folder on Dropbox.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESMetadata` object on success or a
  /// `DBFILESGetMetadataError` object on failure.
  ///
  - (DBRpcTask<DBFILESMetadata *, DBFILESGetMetadataError *> * _Nonnull)getMetadata:(NSString * _Nonnull)path;
  
  ///
  /// Returns the metadata for a file or folder. Note: Metadata for the root folder is unsupported.
  ///
  /// @param path The path of a file or folder on Dropbox.
  /// @param includeMediaInfo If true, `mediaInfo` in `DBFILESFileMetadata` is set for photo and video.
  /// @param includeDeleted If true, DeletedMetadata will be returned for deleted file or folder, otherwise `notFound` in
  /// `DBFILESLookupError` will be returned.
  /// @param includeHasExplicitSharedMembers If true, the results will include a flag for each file indicating whether or
  /// not  that file has any explicit members.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESMetadata` object on success or a
  /// `DBFILESGetMetadataError` object on failure.
  ///
  - (DBRpcTask<DBFILESMetadata *, DBFILESGetMetadataError *> * _Nonnull)getMetadata:(NSString * _Nonnull)path
                                                                  includeMediaInfo:(NSNumber * _Nullable)includeMediaInfo
                                                                    includeDeleted:(NSNumber * _Nullable)includeDeleted
                                                   includeHasExplicitSharedMembers:
                                                       (NSNumber * _Nullable)includeHasExplicitSharedMembers;
  
  ///
  /// Get a preview for a file. Currently previews are only generated for the files with  the following extensions: .doc,
  /// .docx, .docm, .ppt, .pps, .ppsx, .ppsm, .pptx, .pptm,  .xls, .xlsx, .xlsm, .rtf.
  ///
  /// @param path The path of the file to preview.
  /// @param overwrite A boolean to set behavior in the event of a naming conflict. `YES` will overwrite conflicting file
  /// at destination. `NO` will take no action, resulting in an `NSError` returned to the response handler in the event of
  /// a file conflict.
  /// @param destination The file url of the desired download output location.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESPreviewError` object on failure.
  ///
  - (DBDownloadUrlTask<DBFILESFileMetadata *, DBFILESPreviewError *> * _Nonnull)getPreviewUrl:(NSString * _Nonnull)path
                                                                                   overwrite:(BOOL)overwrite
                                                                                 destination:(NSURL * _Nonnull)destination;
  
  ///
  /// Get a preview for a file. Currently previews are only generated for the files with  the following extensions: .doc,
  /// .docx, .docm, .ppt, .pps, .ppsx, .ppsm, .pptx, .pptm,  .xls, .xlsx, .xlsm, .rtf.
  ///
  /// @param path The path of the file to preview.
  /// @param rev Deprecated. Please specify revision in path instead.
  /// @param overwrite A boolean to set behavior in the event of a naming conflict. `YES` will overwrite conflicting file
  /// at destination. `NO` will take no action, resulting in an `NSError` returned to the response handler in the event of
  /// a file conflict.
  /// @param destination The file url of the desired download output location.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESPreviewError` object on failure.
  ///
  - (DBDownloadUrlTask<DBFILESFileMetadata *, DBFILESPreviewError *> * _Nonnull)getPreviewUrl:(NSString * _Nonnull)path
                                                                                         rev:(NSString * _Nullable)rev
                                                                                   overwrite:(BOOL)overwrite
                                                                                 destination:(NSURL * _Nonnull)destination;
  
  ///
  /// Get a preview for a file. Currently previews are only generated for the files with  the following extensions: .doc,
  /// .docx, .docm, .ppt, .pps, .ppsx, .ppsm, .pptx, .pptm,  .xls, .xlsx, .xlsm, .rtf.
  ///
  /// @param path The path of the file to preview.
  /// @param overwrite A boolean to set behavior in the event of a naming conflict. `YES` will overwrite conflicting file
  /// at destination. `NO` will take no action, resulting in an `NSError` returned to the response handler in the event of
  /// a file conflict.
  /// @param destination The file url of the desired download output location.
  /// @param byteOffsetStart For partial file download. Download file beginning from this starting byte position. Must
  /// include valid end range value.
  /// @param byteOffsetEnd For partial file download. Download file up until this ending byte position. Must include valid
  /// start range value.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESPreviewError` object on failure.
  ///
  - (DBDownloadUrlTask<DBFILESFileMetadata *, DBFILESPreviewError *> * _Nonnull)
    getPreviewUrl:(NSString * _Nonnull)path
        overwrite:(BOOL)overwrite
      destination:(NSURL * _Nonnull)destination
  byteOffsetStart:(NSNumber * _Nonnull)byteOffsetStart
    byteOffsetEnd:(NSNumber * _Nonnull)byteOffsetEnd;
  
  ///
  /// Get a preview for a file. Currently previews are only generated for the files with  the following extensions: .doc,
  /// .docx, .docm, .ppt, .pps, .ppsx, .ppsm, .pptx, .pptm,  .xls, .xlsx, .xlsm, .rtf.
  ///
  /// @param path The path of the file to preview.
  /// @param rev Deprecated. Please specify revision in path instead.
  /// @param overwrite A boolean to set behavior in the event of a naming conflict. `YES` will overwrite conflicting file
  /// at destination. `NO` will take no action, resulting in an `NSError` returned to the response handler in the event of
  /// a file conflict.
  /// @param destination The file url of the desired download output location.
  /// @param byteOffsetStart For partial file download. Download file beginning from this starting byte position. Must
  /// include valid end range value.
  /// @param byteOffsetEnd For partial file download. Download file up until this ending byte position. Must include valid
  /// start range value.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESPreviewError` object on failure.
  ///
  - (DBDownloadUrlTask<DBFILESFileMetadata *, DBFILESPreviewError *> * _Nonnull)
    getPreviewUrl:(NSString * _Nonnull)path
              rev:(NSString * _Nullable)rev
        overwrite:(BOOL)overwrite
      destination:(NSURL * _Nonnull)destination
  byteOffsetStart:(NSNumber * _Nonnull)byteOffsetStart
    byteOffsetEnd:(NSNumber * _Nonnull)byteOffsetEnd;
  
  ///
  /// Get a preview for a file. Currently previews are only generated for the files with  the following extensions: .doc,
  /// .docx, .docm, .ppt, .pps, .ppsx, .ppsm, .pptx, .pptm,  .xls, .xlsx, .xlsm, .rtf.
  ///
  /// @param path The path of the file to preview.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESPreviewError` object on failure.
  ///
  - (DBDownloadDataTask<DBFILESFileMetadata *, DBFILESPreviewError *> * _Nonnull)getPreviewData:(NSString * _Nonnull)path;
  
  ///
  /// Get a preview for a file. Currently previews are only generated for the files with  the following extensions: .doc,
  /// .docx, .docm, .ppt, .pps, .ppsx, .ppsm, .pptx, .pptm,  .xls, .xlsx, .xlsm, .rtf.
  ///
  /// @param path The path of the file to preview.
  /// @param rev Deprecated. Please specify revision in path instead.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESPreviewError` object on failure.
  ///
  - (DBDownloadDataTask<DBFILESFileMetadata *, DBFILESPreviewError *> * _Nonnull)getPreviewData:(NSString * _Nonnull)path
                                                                                           rev:(NSString * _Nullable)rev;
  
  ///
  /// Get a preview for a file. Currently previews are only generated for the files with  the following extensions: .doc,
  /// .docx, .docm, .ppt, .pps, .ppsx, .ppsm, .pptx, .pptm,  .xls, .xlsx, .xlsm, .rtf.
  ///
  /// @param path The path of the file to preview.
  /// @param byteOffsetStart For partial file download. Download file beginning from this starting byte position. Must
  /// include valid end range value.
  /// @param byteOffsetEnd For partial file download. Download file up until this ending byte position. Must include valid
  /// start range value.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESPreviewError` object on failure.
  ///
  - (DBDownloadDataTask<DBFILESFileMetadata *, DBFILESPreviewError *> * _Nonnull)
   getPreviewData:(NSString * _Nonnull)path
  byteOffsetStart:(NSNumber * _Nonnull)byteOffsetStart
    byteOffsetEnd:(NSNumber * _Nonnull)byteOffsetEnd;
  
  ///
  /// Get a preview for a file. Currently previews are only generated for the files with  the following extensions: .doc,
  /// .docx, .docm, .ppt, .pps, .ppsx, .ppsm, .pptx, .pptm,  .xls, .xlsx, .xlsm, .rtf.
  ///
  /// @param path The path of the file to preview.
  /// @param rev Deprecated. Please specify revision in path instead.
  /// @param byteOffsetStart For partial file download. Download file beginning from this starting byte position. Must
  /// include valid end range value.
  /// @param byteOffsetEnd For partial file download. Download file up until this ending byte position. Must include valid
  /// start range value.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESPreviewError` object on failure.
  ///
  - (DBDownloadDataTask<DBFILESFileMetadata *, DBFILESPreviewError *> * _Nonnull)
   getPreviewData:(NSString * _Nonnull)path
              rev:(NSString * _Nullable)rev
  byteOffsetStart:(NSNumber * _Nonnull)byteOffsetStart
    byteOffsetEnd:(NSNumber * _Nonnull)byteOffsetEnd;
  
  ///
  /// Get a temporary link to stream content of a file. This link will expire in four hours and afterwards you will get
  /// 410 Gone. Content-Type of the link is determined automatically by the file's mime type.
  ///
  /// @param path The path to the file you want a temporary link to.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESGetTemporaryLinkResult` object on success
  /// or a `DBFILESGetTemporaryLinkError` object on failure.
  ///
  - (DBRpcTask<DBFILESGetTemporaryLinkResult *, DBFILESGetTemporaryLinkError *> * _Nonnull)getTemporaryLink:
      (NSString * _Nonnull)path;
  
  ///
  /// Get a thumbnail for an image. This method currently supports files with the following file extensions: jpg, jpeg,
  /// png, tiff, tif, gif and bmp. Photos that are larger than 20MB in size won't be converted to a thumbnail.
  ///
  /// @param path The path to the image file you want to thumbnail.
  /// @param overwrite A boolean to set behavior in the event of a naming conflict. `YES` will overwrite conflicting file
  /// at destination. `NO` will take no action, resulting in an `NSError` returned to the response handler in the event of
  /// a file conflict.
  /// @param destination The file url of the desired download output location.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESThumbnailError` object on failure.
  ///
  - (DBDownloadUrlTask<DBFILESFileMetadata *, DBFILESThumbnailError *> * _Nonnull)getThumbnailUrl:(NSString * _Nonnull)path
                                                                                       overwrite:(BOOL)overwrite
                                                                                     destination:
                                                                                         (NSURL * _Nonnull)destination;
  
  ///
  /// Get a thumbnail for an image. This method currently supports files with the following file extensions: jpg, jpeg,
  /// png, tiff, tif, gif and bmp. Photos that are larger than 20MB in size won't be converted to a thumbnail.
  ///
  /// @param path The path to the image file you want to thumbnail.
  /// @param format The format for the thumbnail image, jpeg (default) or png. For  images that are photos, jpeg should be
  /// preferred, while png is  better for screenshots and digital arts.
  /// @param size The size for the thumbnail image.
  /// @param overwrite A boolean to set behavior in the event of a naming conflict. `YES` will overwrite conflicting file
  /// at destination. `NO` will take no action, resulting in an `NSError` returned to the response handler in the event of
  /// a file conflict.
  /// @param destination The file url of the desired download output location.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESThumbnailError` object on failure.
  ///
  - (DBDownloadUrlTask<DBFILESFileMetadata *, DBFILESThumbnailError *> * _Nonnull)
  getThumbnailUrl:(NSString * _Nonnull)path
           format:(DBFILESThumbnailFormat * _Nullable)format
             size:(DBFILESThumbnailSize * _Nullable)size
        overwrite:(BOOL)overwrite
      destination:(NSURL * _Nonnull)destination;
  
  ///
  /// Get a thumbnail for an image. This method currently supports files with the following file extensions: jpg, jpeg,
  /// png, tiff, tif, gif and bmp. Photos that are larger than 20MB in size won't be converted to a thumbnail.
  ///
  /// @param path The path to the image file you want to thumbnail.
  /// @param overwrite A boolean to set behavior in the event of a naming conflict. `YES` will overwrite conflicting file
  /// at destination. `NO` will take no action, resulting in an `NSError` returned to the response handler in the event of
  /// a file conflict.
  /// @param destination The file url of the desired download output location.
  /// @param byteOffsetStart For partial file download. Download file beginning from this starting byte position. Must
  /// include valid end range value.
  /// @param byteOffsetEnd For partial file download. Download file up until this ending byte position. Must include valid
  /// start range value.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESThumbnailError` object on failure.
  ///
  - (DBDownloadUrlTask<DBFILESFileMetadata *, DBFILESThumbnailError *> * _Nonnull)
  getThumbnailUrl:(NSString * _Nonnull)path
        overwrite:(BOOL)overwrite
      destination:(NSURL * _Nonnull)destination
  byteOffsetStart:(NSNumber * _Nonnull)byteOffsetStart
    byteOffsetEnd:(NSNumber * _Nonnull)byteOffsetEnd;
  
  ///
  /// Get a thumbnail for an image. This method currently supports files with the following file extensions: jpg, jpeg,
  /// png, tiff, tif, gif and bmp. Photos that are larger than 20MB in size won't be converted to a thumbnail.
  ///
  /// @param path The path to the image file you want to thumbnail.
  /// @param format The format for the thumbnail image, jpeg (default) or png. For  images that are photos, jpeg should be
  /// preferred, while png is  better for screenshots and digital arts.
  /// @param size The size for the thumbnail image.
  /// @param overwrite A boolean to set behavior in the event of a naming conflict. `YES` will overwrite conflicting file
  /// at destination. `NO` will take no action, resulting in an `NSError` returned to the response handler in the event of
  /// a file conflict.
  /// @param destination The file url of the desired download output location.
  /// @param byteOffsetStart For partial file download. Download file beginning from this starting byte position. Must
  /// include valid end range value.
  /// @param byteOffsetEnd For partial file download. Download file up until this ending byte position. Must include valid
  /// start range value.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESThumbnailError` object on failure.
  ///
  - (DBDownloadUrlTask<DBFILESFileMetadata *, DBFILESThumbnailError *> * _Nonnull)
  getThumbnailUrl:(NSString * _Nonnull)path
           format:(DBFILESThumbnailFormat * _Nullable)format
             size:(DBFILESThumbnailSize * _Nullable)size
        overwrite:(BOOL)overwrite
      destination:(NSURL * _Nonnull)destination
  byteOffsetStart:(NSNumber * _Nonnull)byteOffsetStart
    byteOffsetEnd:(NSNumber * _Nonnull)byteOffsetEnd;
  
  ///
  /// Get a thumbnail for an image. This method currently supports files with the following file extensions: jpg, jpeg,
  /// png, tiff, tif, gif and bmp. Photos that are larger than 20MB in size won't be converted to a thumbnail.
  ///
  /// @param path The path to the image file you want to thumbnail.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESThumbnailError` object on failure.
  ///
  - (DBDownloadDataTask<DBFILESFileMetadata *, DBFILESThumbnailError *> * _Nonnull)getThumbnailData:
      (NSString * _Nonnull)path;
  
  ///
  /// Get a thumbnail for an image. This method currently supports files with the following file extensions: jpg, jpeg,
  /// png, tiff, tif, gif and bmp. Photos that are larger than 20MB in size won't be converted to a thumbnail.
  ///
  /// @param path The path to the image file you want to thumbnail.
  /// @param format The format for the thumbnail image, jpeg (default) or png. For  images that are photos, jpeg should be
  /// preferred, while png is  better for screenshots and digital arts.
  /// @param size The size for the thumbnail image.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESThumbnailError` object on failure.
  ///
  - (DBDownloadDataTask<DBFILESFileMetadata *, DBFILESThumbnailError *> * _Nonnull)
  getThumbnailData:(NSString * _Nonnull)path
            format:(DBFILESThumbnailFormat * _Nullable)format
              size:(DBFILESThumbnailSize * _Nullable)size;
  
  ///
  /// Get a thumbnail for an image. This method currently supports files with the following file extensions: jpg, jpeg,
  /// png, tiff, tif, gif and bmp. Photos that are larger than 20MB in size won't be converted to a thumbnail.
  ///
  /// @param path The path to the image file you want to thumbnail.
  /// @param byteOffsetStart For partial file download. Download file beginning from this starting byte position. Must
  /// include valid end range value.
  /// @param byteOffsetEnd For partial file download. Download file up until this ending byte position. Must include valid
  /// start range value.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESThumbnailError` object on failure.
  ///
  - (DBDownloadDataTask<DBFILESFileMetadata *, DBFILESThumbnailError *> * _Nonnull)
  getThumbnailData:(NSString * _Nonnull)path
   byteOffsetStart:(NSNumber * _Nonnull)byteOffsetStart
     byteOffsetEnd:(NSNumber * _Nonnull)byteOffsetEnd;
  
  ///
  /// Get a thumbnail for an image. This method currently supports files with the following file extensions: jpg, jpeg,
  /// png, tiff, tif, gif and bmp. Photos that are larger than 20MB in size won't be converted to a thumbnail.
  ///
  /// @param path The path to the image file you want to thumbnail.
  /// @param format The format for the thumbnail image, jpeg (default) or png. For  images that are photos, jpeg should be
  /// preferred, while png is  better for screenshots and digital arts.
  /// @param size The size for the thumbnail image.
  /// @param byteOffsetStart For partial file download. Download file beginning from this starting byte position. Must
  /// include valid end range value.
  /// @param byteOffsetEnd For partial file download. Download file up until this ending byte position. Must include valid
  /// start range value.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESThumbnailError` object on failure.
  ///
  - (DBDownloadDataTask<DBFILESFileMetadata *, DBFILESThumbnailError *> * _Nonnull)
  getThumbnailData:(NSString * _Nonnull)path
            format:(DBFILESThumbnailFormat * _Nullable)format
              size:(DBFILESThumbnailSize * _Nullable)size
   byteOffsetStart:(NSNumber * _Nonnull)byteOffsetStart
     byteOffsetEnd:(NSNumber * _Nonnull)byteOffsetEnd;
  
  ///
  /// Starts returning the contents of a folder. If the result's `hasMore` in `DBFILESListFolderResult` field is true,
  /// call `listFolderContinue` with the returned `cursor` in `DBFILESListFolderResult` to retrieve more entries. If
  /// you're using `recursive` in `DBFILESListFolderArg` set to true to keep a local cache of the contents of a Dropbox
  /// account, iterate through each entry in order and process them as follows to keep your local state in sync: For each
  /// FileMetadata, store the new entry at the given path in your local state. If the required parent folders don't exist
  /// yet, create them. If there's already something else at the given path, replace it and remove all its children. For
  /// each FolderMetadata, store the new entry at the given path in your local state. If the required parent folders don't
  /// exist yet, create them. If there's already something else at the given path, replace it but leave the children as
  /// they are. Check the new entry's `readOnly` in `DBFILESFolderSharingInfo` and set all its children's read-only
  /// statuses to match. For each DeletedMetadata, if your local state has something at the given path, remove it and all
  /// its children. If there's nothing at the given path, ignore this entry.
  ///
  /// @param path The path to the folder you want to see the contents of.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESListFolderResult` object on success or a
  /// `DBFILESListFolderError` object on failure.
  ///
  - (DBRpcTask<DBFILESListFolderResult *, DBFILESListFolderError *> * _Nonnull)listFolder:(NSString * _Nonnull)path;
  
  ///
  /// Starts returning the contents of a folder. If the result's `hasMore` in `DBFILESListFolderResult` field is true,
  /// call `listFolderContinue` with the returned `cursor` in `DBFILESListFolderResult` to retrieve more entries. If
  /// you're using `recursive` in `DBFILESListFolderArg` set to true to keep a local cache of the contents of a Dropbox
  /// account, iterate through each entry in order and process them as follows to keep your local state in sync: For each
  /// FileMetadata, store the new entry at the given path in your local state. If the required parent folders don't exist
  /// yet, create them. If there's already something else at the given path, replace it and remove all its children. For
  /// each FolderMetadata, store the new entry at the given path in your local state. If the required parent folders don't
  /// exist yet, create them. If there's already something else at the given path, replace it but leave the children as
  /// they are. Check the new entry's `readOnly` in `DBFILESFolderSharingInfo` and set all its children's read-only
  /// statuses to match. For each DeletedMetadata, if your local state has something at the given path, remove it and all
  /// its children. If there's nothing at the given path, ignore this entry.
  ///
  /// @param path The path to the folder you want to see the contents of.
  /// @param recursive If true, the list folder operation will be applied recursively to all subfolders and the response
  /// will contain contents of all subfolders.
  /// @param includeMediaInfo If true, `mediaInfo` in `DBFILESFileMetadata` is set for photo and video.
  /// @param includeDeleted If true, the results will include entries for files and folders that used to exist but were
  /// deleted.
  /// @param includeHasExplicitSharedMembers If true, the results will include a flag for each file indicating whether or
  /// not  that file has any explicit members.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESListFolderResult` object on success or a
  /// `DBFILESListFolderError` object on failure.
  ///
  - (DBRpcTask<DBFILESListFolderResult *, DBFILESListFolderError *> * _Nonnull)
                       listFolder:(NSString * _Nonnull)path
                        recursive:(NSNumber * _Nullable)recursive
                 includeMediaInfo:(NSNumber * _Nullable)includeMediaInfo
                   includeDeleted:(NSNumber * _Nullable)includeDeleted
  includeHasExplicitSharedMembers:(NSNumber * _Nullable)includeHasExplicitSharedMembers;
  
  ///
  /// Once a cursor has been retrieved from `listFolder`, use this to paginate through all files and retrieve updates to
  /// the folder, following the same rules as documented for `listFolder`.
  ///
  /// @param cursor The cursor returned by your last call to `listFolder` or `listFolderContinue`.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESListFolderResult` object on success or a
  /// `DBFILESListFolderContinueError` object on failure.
  ///
  - (DBRpcTask<DBFILESListFolderResult *, DBFILESListFolderContinueError *> * _Nonnull)listFolderContinue:
      (NSString * _Nonnull)cursor;
  
  ///
  /// A way to quickly get a cursor for the folder's state. Unlike `listFolder`, `listFolderGetLatestCursor` doesn't
  /// return any entries. This endpoint is for app which only needs to know about new files and modifications and doesn't
  /// need to know about files that already exist in Dropbox.
  ///
  /// @param path The path to the folder you want to see the contents of.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESListFolderGetLatestCursorResult` object on
  /// success or a `DBFILESListFolderError` object on failure.
  ///
  - (DBRpcTask<DBFILESListFolderGetLatestCursorResult *, DBFILESListFolderError *> * _Nonnull)listFolderGetLatestCursor:
      (NSString * _Nonnull)path;
  
  ///
  /// A way to quickly get a cursor for the folder's state. Unlike `listFolder`, `listFolderGetLatestCursor` doesn't
  /// return any entries. This endpoint is for app which only needs to know about new files and modifications and doesn't
  /// need to know about files that already exist in Dropbox.
  ///
  /// @param path The path to the folder you want to see the contents of.
  /// @param recursive If true, the list folder operation will be applied recursively to all subfolders and the response
  /// will contain contents of all subfolders.
  /// @param includeMediaInfo If true, `mediaInfo` in `DBFILESFileMetadata` is set for photo and video.
  /// @param includeDeleted If true, the results will include entries for files and folders that used to exist but were
  /// deleted.
  /// @param includeHasExplicitSharedMembers If true, the results will include a flag for each file indicating whether or
  /// not  that file has any explicit members.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESListFolderGetLatestCursorResult` object on
  /// success or a `DBFILESListFolderError` object on failure.
  ///
  - (DBRpcTask<DBFILESListFolderGetLatestCursorResult *, DBFILESListFolderError *> * _Nonnull)
        listFolderGetLatestCursor:(NSString * _Nonnull)path
                        recursive:(NSNumber * _Nullable)recursive
                 includeMediaInfo:(NSNumber * _Nullable)includeMediaInfo
                   includeDeleted:(NSNumber * _Nullable)includeDeleted
  includeHasExplicitSharedMembers:(NSNumber * _Nullable)includeHasExplicitSharedMembers;
  
  ///
  /// A longpoll endpoint to wait for changes on an account. In conjunction with `listFolderContinue`, this call gives you
  /// a low-latency way to monitor an account for file changes. The connection will block until there are changes
  /// available or a timeout occurs. This endpoint is useful mostly for client-side apps. If you're looking for
  /// server-side notifications, check out our webhooks documentation
  /// https://www.dropbox.com/developers/reference/webhooks.
  ///
  /// @param cursor A cursor as returned by `listFolder` or `listFolderContinue`. Cursors retrieved by setting
  /// `includeMediaInfo` in `DBFILESListFolderArg` to true are not supported.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESListFolderLongpollResult` object on success
  /// or a `DBFILESListFolderLongpollError` object on failure.
  ///
  - (DBRpcTask<DBFILESListFolderLongpollResult *, DBFILESListFolderLongpollError *> * _Nonnull)listFolderLongpoll:
      (NSString * _Nonnull)cursor;
  
  ///
  /// A longpoll endpoint to wait for changes on an account. In conjunction with `listFolderContinue`, this call gives you
  /// a low-latency way to monitor an account for file changes. The connection will block until there are changes
  /// available or a timeout occurs. This endpoint is useful mostly for client-side apps. If you're looking for
  /// server-side notifications, check out our webhooks documentation
  /// https://www.dropbox.com/developers/reference/webhooks.
  ///
  /// @param cursor A cursor as returned by `listFolder` or `listFolderContinue`. Cursors retrieved by setting
  /// `includeMediaInfo` in `DBFILESListFolderArg` to true are not supported.
  /// @param timeout A timeout in seconds. The request will block for at most this length of time, plus up to 90 seconds
  /// of random jitter added to avoid the thundering herd problem. Care should be taken when using this parameter, as some
  /// network infrastructure does not support long timeouts.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESListFolderLongpollResult` object on success
  /// or a `DBFILESListFolderLongpollError` object on failure.
  ///
  - (DBRpcTask<DBFILESListFolderLongpollResult *, DBFILESListFolderLongpollError *> * _Nonnull)
  listFolderLongpoll:(NSString * _Nonnull)cursor
             timeout:(NSNumber * _Nullable)timeout;
  
  ///
  /// Return revisions of a file.
  ///
  /// @param path The path to the file you want to see the revisions of.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESListRevisionsResult` object on success or a
  /// `DBFILESListRevisionsError` object on failure.
  ///
  - (DBRpcTask<DBFILESListRevisionsResult *, DBFILESListRevisionsError *> * _Nonnull)listRevisions:
      (NSString * _Nonnull)path;
  
  ///
  /// Return revisions of a file.
  ///
  /// @param path The path to the file you want to see the revisions of.
  /// @param limit The maximum number of revision entries returned.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESListRevisionsResult` object on success or a
  /// `DBFILESListRevisionsError` object on failure.
  ///
  - (DBRpcTask<DBFILESListRevisionsResult *, DBFILESListRevisionsError *> * _Nonnull)listRevisions:(NSString * _Nonnull)path
                                                                                            limit:(NSNumber * _Nullable)
                                                                                                      limit;
  
  ///
  /// Move a file or folder to a different location in the user's Dropbox. If the source path is a folder all its contents
  /// will be moved.
  ///
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESMetadata` object on success or a
  /// `DBFILESRelocationError` object on failure.
  ///
  - (DBRpcTask<DBFILESMetadata *, DBFILESRelocationError *> * _Nonnull)move:(NSString * _Nonnull)fromPath
                                                                    toPath:(NSString * _Nonnull)toPath;
  
  ///
  /// Move a file or folder to a different location in the user's Dropbox. If the source path is a folder all its contents
  /// will be moved.
  ///
  /// @param allowSharedFolder If true, `dCopy` will copy contents in shared folder, otherwise `cantCopySharedFolder` in
  /// `DBFILESRelocationError` will be returned if fromPath contains shared folder. This field is always true for `move`.
  /// @param autorename If there's a conflict, have the Dropbox server try to autorename the file to avoid the conflict.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESMetadata` object on success or a
  /// `DBFILESRelocationError` object on failure.
  ///
  - (DBRpcTask<DBFILESMetadata *, DBFILESRelocationError *> * _Nonnull)move:(NSString * _Nonnull)fromPath
                                                                    toPath:(NSString * _Nonnull)toPath
                                                         allowSharedFolder:(NSNumber * _Nullable)allowSharedFolder
                                                                autorename:(NSNumber * _Nullable)autorename;
  
  ///
  /// Move multiple files or folders to different locations at once in the user's Dropbox. This route is 'all or nothing',
  /// which means if one entry fails, the whole transaction will abort. This route will return job ID immediately and do
  /// the async moving job in background. Please use `moveBatchCheck` to check the job status.
  ///
  /// @param entries List of entries to be moved or copied. Each entry is RelocationPath.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESRelocationBatchLaunch` object on success or
  /// a `void` object on failure.
  ///
  - (DBRpcTask<DBFILESRelocationBatchLaunch *, DBNilObject *> * _Nonnull)moveBatch:
      (NSArray<DBFILESRelocationPath *> * _Nonnull)entries;
  
  ///
  /// Move multiple files or folders to different locations at once in the user's Dropbox. This route is 'all or nothing',
  /// which means if one entry fails, the whole transaction will abort. This route will return job ID immediately and do
  /// the async moving job in background. Please use `moveBatchCheck` to check the job status.
  ///
  /// @param entries List of entries to be moved or copied. Each entry is RelocationPath.
  /// @param allowSharedFolder If true, `dCopyBatch` will copy contents in shared folder, otherwise `cantCopySharedFolder`
  /// in `DBFILESRelocationError` will be returned if `fromPath` in `DBFILESRelocationPath` contains shared folder.  This
  /// field is always true for `moveBatch`.
  /// @param autorename If there's a conflict with any file, have the Dropbox server try to autorename that file to avoid
  /// the conflict.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESRelocationBatchLaunch` object on success or
  /// a `void` object on failure.
  ///
  - (DBRpcTask<DBFILESRelocationBatchLaunch *, DBNilObject *> * _Nonnull)
          moveBatch:(NSArray<DBFILESRelocationPath *> * _Nonnull)entries
  allowSharedFolder:(NSNumber * _Nullable)allowSharedFolder
         autorename:(NSNumber * _Nullable)autorename;
  
  ///
  /// Returns the status of an asynchronous job for `moveBatch`. If success, it returns list of results for each entry.
  ///
  /// @param asyncJobId Id of the asynchronous job. This is the value of a response returned from the method that launched
  /// the job.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESRelocationBatchJobStatus` object on success
  /// or a `DBASYNCPollError` object on failure.
  ///
  - (DBRpcTask<DBFILESRelocationBatchJobStatus *, DBASYNCPollError *> * _Nonnull)moveBatchCheck:
      (NSString * _Nonnull)asyncJobId;
  
  ///
  /// Permanently delete the file or folder at a given path (see https://www.dropbox.com/en/help/40). Note: This endpoint
  /// is only available for Dropbox Business apps.
  ///
  /// @param path Path in the user's Dropbox to delete.
  ///
  /// @return Through the response callback, the caller will receive a `void` object on success or a `DBFILESDeleteError`
  /// object on failure.
  ///
  - (DBRpcTask<DBNilObject *, DBFILESDeleteError *> * _Nonnull)permanentlyDelete:(NSString * _Nonnull)path;
  
  ///
  /// Add custom properties to a file using a filled property template. See properties/template/add to create new property
  /// templates.
  ///
  /// @param path A unique identifier for the file.
  /// @param propertyGroups Filled custom property templates associated with a file.
  ///
  /// @return Through the response callback, the caller will receive a `void` object on success or a
  /// `DBFILESAddPropertiesError` object on failure.
  ///
  - (DBRpcTask<DBNilObject *, DBFILESAddPropertiesError *> * _Nonnull)
   propertiesAdd:(NSString * _Nonnull)path
  propertyGroups:(NSArray<DBPROPERTIESPropertyGroup *> * _Nonnull)propertyGroups;
  
  ///
  /// Overwrite custom properties from a specified template associated with a file.
  ///
  /// @param path A unique identifier for the file.
  /// @param propertyGroups Filled custom property templates associated with a file.
  ///
  /// @return Through the response callback, the caller will receive a `void` object on success or a
  /// `DBFILESInvalidPropertyGroupError` object on failure.
  ///
  - (DBRpcTask<DBNilObject *, DBFILESInvalidPropertyGroupError *> * _Nonnull)
  propertiesOverwrite:(NSString * _Nonnull)path
       propertyGroups:(NSArray<DBPROPERTIESPropertyGroup *> * _Nonnull)propertyGroups;
  
  ///
  /// Remove all custom properties from a specified template associated with a file. To remove specific property key value
  /// pairs, see `propertiesUpdate`. To update a property template, see properties/template/update. Property templates
  /// can't be removed once created.
  ///
  /// @param path A unique identifier for the file.
  /// @param propertyTemplateIds A list of identifiers for a property template created by route properties/template/add.
  ///
  /// @return Through the response callback, the caller will receive a `void` object on success or a
  /// `DBFILESRemovePropertiesError` object on failure.
  ///
  - (DBRpcTask<DBNilObject *, DBFILESRemovePropertiesError *> * _Nonnull)propertiesRemove:(NSString * _Nonnull)path
                                                                     propertyTemplateIds:(NSArray<NSString *> * _Nonnull)
                                                                                             propertyTemplateIds;
  
  ///
  /// Get the schema for a specified template.
  ///
  /// @param templateId An identifier for property template added by route properties/template/add.
  ///
  /// @return Through the response callback, the caller will receive a `DBPROPERTIESGetPropertyTemplateResult` object on
  /// success or a `DBPROPERTIESPropertyTemplateError` object on failure.
  ///
  - (DBRpcTask<DBPROPERTIESGetPropertyTemplateResult *, DBPROPERTIESPropertyTemplateError *> * _Nonnull)
  propertiesTemplateGet:(NSString * _Nonnull)templateId;
  
  ///
  /// Get the property template identifiers for a user. To get the schema of each template use `propertiesTemplateGet`.
  ///
  ///
  /// @return Through the response callback, the caller will receive a `DBPROPERTIESListPropertyTemplateIds` object on
  /// success or a `DBPROPERTIESPropertyTemplateError` object on failure.
  ///
  - (DBRpcTask<DBPROPERTIESListPropertyTemplateIds *, DBPROPERTIESPropertyTemplateError *> * _Nonnull)
      propertiesTemplateList;
  
  ///
  /// Add, update or remove custom properties from a specified template associated with a file. Fields that already exist
  /// and not described in the request will not be modified.
  ///
  /// @param path A unique identifier for the file.
  /// @param updatePropertyGroups Filled custom property templates associated with a file.
  ///
  /// @return Through the response callback, the caller will receive a `void` object on success or a
  /// `DBFILESUpdatePropertiesError` object on failure.
  ///
  - (DBRpcTask<DBNilObject *, DBFILESUpdatePropertiesError *> * _Nonnull)
      propertiesUpdate:(NSString * _Nonnull)path
  updatePropertyGroups:(NSArray<DBFILESPropertyGroupUpdate *> * _Nonnull)updatePropertyGroups;
  
  ///
  /// Restore a file to a specific revision.
  ///
  /// @param path The path to the file you want to restore.
  /// @param rev The revision to restore for the file.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESRestoreError` object on failure.
  ///
  - (DBRpcTask<DBFILESFileMetadata *, DBFILESRestoreError *> * _Nonnull)restore:(NSString * _Nonnull)path
                                                                           rev:(NSString * _Nonnull)rev;
  
  ///
  /// Save a specified URL into a file in user's Dropbox. If the given path already exists, the file will be renamed to
  /// avoid the conflict (e.g. myfile (1).txt).
  ///
  /// @param path The path in Dropbox where the URL will be saved to.
  /// @param url The URL to be saved.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESSaveUrlResult` object on success or a
  /// `DBFILESSaveUrlError` object on failure.
  ///
  - (DBRpcTask<DBFILESSaveUrlResult *, DBFILESSaveUrlError *> * _Nonnull)saveUrl:(NSString * _Nonnull)path
                                                                            url:(NSString * _Nonnull)url;
  
  ///
  /// Check the status of a `saveUrl` job.
  ///
  /// @param asyncJobId Id of the asynchronous job. This is the value of a response returned from the method that launched
  /// the job.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESSaveUrlJobStatus` object on success or a
  /// `DBASYNCPollError` object on failure.
  ///
  - (DBRpcTask<DBFILESSaveUrlJobStatus *, DBASYNCPollError *> * _Nonnull)saveUrlCheckJobStatus:
      (NSString * _Nonnull)asyncJobId;
  
  ///
  /// Searches for files and folders. Note: Recent changes may not immediately be reflected in search results due to a
  /// short delay in indexing.
  ///
  /// @param path The path in the user's Dropbox to search. Should probably be a folder.
  /// @param query The string to search for. The search string is split on spaces into multiple tokens. For file name
  /// searching, the last token is used for prefix matching (i.e. "bat c" matches "bat cave" but not "batman car").
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESSearchResult` object on success or a
  /// `DBFILESSearchError` object on failure.
  ///
  - (DBRpcTask<DBFILESSearchResult *, DBFILESSearchError *> * _Nonnull)search:(NSString * _Nonnull)path
                                                                       query:(NSString * _Nonnull)query;
  
  ///
  /// Searches for files and folders. Note: Recent changes may not immediately be reflected in search results due to a
  /// short delay in indexing.
  ///
  /// @param path The path in the user's Dropbox to search. Should probably be a folder.
  /// @param query The string to search for. The search string is split on spaces into multiple tokens. For file name
  /// searching, the last token is used for prefix matching (i.e. "bat c" matches "bat cave" but not "batman car").
  /// @param start The starting index within the search results (used for paging).
  /// @param maxResults The maximum number of search results to return.
  /// @param mode The search mode (filename, filename_and_content, or deleted_filename). Note that searching file content
  /// is only available for Dropbox Business accounts.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESSearchResult` object on success or a
  /// `DBFILESSearchError` object on failure.
  ///
  - (DBRpcTask<DBFILESSearchResult *, DBFILESSearchError *> * _Nonnull)search:(NSString * _Nonnull)path
                                                                       query:(NSString * _Nonnull)query
                                                                       start:(NSNumber * _Nullable)start
                                                                  maxResults:(NSNumber * _Nullable)maxResults
                                                                        mode:(DBFILESSearchMode * _Nullable)mode;
  
  ///
  /// Create a new file with the contents provided in the request. Do not use this to upload a file larger than 150 MB.
  /// Instead, create an upload session with `uploadSessionStart`.
  ///
  /// @param path Path in the user's Dropbox to save the file.
  /// @param inputUrl The file to upload, as an NSString * object.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESUploadError` object on failure.
  ///
  - (DBUploadTask<DBFILESFileMetadata *, DBFILESUploadError *> * _Nonnull)uploadUrl:(NSString * _Nonnull)path
                                                                          inputUrl:(NSString * _Nonnull)inputUrl;
  
  ///
  /// Create a new file with the contents provided in the request. Do not use this to upload a file larger than 150 MB.
  /// Instead, create an upload session with `uploadSessionStart`.
  ///
  /// @param path Path in the user's Dropbox to save the file.
  /// @param mode Selects what to do if the file already exists.
  /// @param autorename If there's a conflict, as determined by mode, have the Dropbox server try to autorename the file
  /// to avoid conflict.
  /// @param clientModified The value to store as the clientModified timestamp. Dropbox automatically records the time at
  /// which the file was written to the Dropbox servers. It can also record an additional timestamp, provided by Dropbox
  /// desktop clients, mobile clients, and API apps of when the file was actually created or modified.
  /// @param mute Normally, users are made aware of any file modifications in their Dropbox account via notifications in
  /// the client software. If true, this tells the clients that this modification shouldn't result in a user notification.
  /// @param inputUrl The file to upload, as an NSString * object.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESUploadError` object on failure.
  ///
  - (DBUploadTask<DBFILESFileMetadata *, DBFILESUploadError *> * _Nonnull)uploadUrl:(NSString * _Nonnull)path
                                                                              mode:(DBFILESWriteMode * _Nullable)mode
                                                                        autorename:(NSNumber * _Nullable)autorename
                                                                    clientModified:(NSDate * _Nullable)clientModified
                                                                              mute:(NSNumber * _Nullable)mute
                                                                          inputUrl:(NSString * _Nonnull)inputUrl;
  
  ///
  /// Create a new file with the contents provided in the request. Do not use this to upload a file larger than 150 MB.
  /// Instead, create an upload session with `uploadSessionStart`.
  ///
  /// @param path Path in the user's Dropbox to save the file.
  /// @param inputData The file to upload, as an NSData * object.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESUploadError` object on failure.
  ///
  - (DBUploadTask<DBFILESFileMetadata *, DBFILESUploadError *> * _Nonnull)uploadData:(NSString * _Nonnull)path
                                                                          inputData:(NSData * _Nonnull)inputData;
  
  ///
  /// Create a new file with the contents provided in the request. Do not use this to upload a file larger than 150 MB.
  /// Instead, create an upload session with `uploadSessionStart`.
  ///
  /// @param path Path in the user's Dropbox to save the file.
  /// @param mode Selects what to do if the file already exists.
  /// @param autorename If there's a conflict, as determined by mode, have the Dropbox server try to autorename the file
  /// to avoid conflict.
  /// @param clientModified The value to store as the clientModified timestamp. Dropbox automatically records the time at
  /// which the file was written to the Dropbox servers. It can also record an additional timestamp, provided by Dropbox
  /// desktop clients, mobile clients, and API apps of when the file was actually created or modified.
  /// @param mute Normally, users are made aware of any file modifications in their Dropbox account via notifications in
  /// the client software. If true, this tells the clients that this modification shouldn't result in a user notification.
  /// @param inputData The file to upload, as an NSData * object.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESUploadError` object on failure.
  ///
  - (DBUploadTask<DBFILESFileMetadata *, DBFILESUploadError *> * _Nonnull)uploadData:(NSString * _Nonnull)path
                                                                               mode:(DBFILESWriteMode * _Nullable)mode
                                                                         autorename:(NSNumber * _Nullable)autorename
                                                                     clientModified:(NSDate * _Nullable)clientModified
                                                                               mute:(NSNumber * _Nullable)mute
                                                                          inputData:(NSData * _Nonnull)inputData;
  
  ///
  /// Create a new file with the contents provided in the request. Do not use this to upload a file larger than 150 MB.
  /// Instead, create an upload session with `uploadSessionStart`.
  ///
  /// @param path Path in the user's Dropbox to save the file.
  /// @param inputStream The file to upload, as an NSInputStream * object.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESUploadError` object on failure.
  ///
  - (DBUploadTask<DBFILESFileMetadata *, DBFILESUploadError *> * _Nonnull)uploadStream:(NSString * _Nonnull)path
                                                                          inputStream:
                                                                              (NSInputStream * _Nonnull)inputStream;
  
  ///
  /// Create a new file with the contents provided in the request. Do not use this to upload a file larger than 150 MB.
  /// Instead, create an upload session with `uploadSessionStart`.
  ///
  /// @param path Path in the user's Dropbox to save the file.
  /// @param mode Selects what to do if the file already exists.
  /// @param autorename If there's a conflict, as determined by mode, have the Dropbox server try to autorename the file
  /// to avoid conflict.
  /// @param clientModified The value to store as the clientModified timestamp. Dropbox automatically records the time at
  /// which the file was written to the Dropbox servers. It can also record an additional timestamp, provided by Dropbox
  /// desktop clients, mobile clients, and API apps of when the file was actually created or modified.
  /// @param mute Normally, users are made aware of any file modifications in their Dropbox account via notifications in
  /// the client software. If true, this tells the clients that this modification shouldn't result in a user notification.
  /// @param inputStream The file to upload, as an NSInputStream * object.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESUploadError` object on failure.
  ///
  - (DBUploadTask<DBFILESFileMetadata *, DBFILESUploadError *> * _Nonnull)uploadStream:(NSString * _Nonnull)path
                                                                                 mode:(DBFILESWriteMode * _Nullable)mode
                                                                           autorename:(NSNumber * _Nullable)autorename
                                                                       clientModified:(NSDate * _Nullable)clientModified
                                                                                 mute:(NSNumber * _Nullable)mute
                                                                          inputStream:
                                                                              (NSInputStream * _Nonnull)inputStream;
  
  ///
  /// DEPRECATED: Append more data to an upload session. A single request should not upload more than 150 MB of file
  /// contents.
  ///
  /// @param sessionId The upload session ID (returned by `uploadSessionStart`).
  /// @param offset The amount of data that has been uploaded so far. We use this to make sure upload data isn't lost or
  /// duplicated in the event of a network error.
  /// @param inputUrl The file to upload, as an NSString * object.
  ///
  /// @return Through the response callback, the caller will receive a `void` object on success or a
  /// `DBFILESUploadSessionLookupError` object on failure.
  ///
  - (DBUploadTask<DBNilObject *, DBFILESUploadSessionLookupError *> * _Nonnull)
  uploadSessionAppendUrl:(NSString * _Nonnull)sessionId
                  offset:(NSNumber * _Nonnull)offset
                inputUrl:(NSString * _Nonnull)inputUrl
      __deprecated_msg("upload_session/append is deprecated. Use upload_session/append_v2.");
  
  ///
  /// DEPRECATED: Append more data to an upload session. A single request should not upload more than 150 MB of file
  /// contents.
  ///
  /// @param sessionId The upload session ID (returned by `uploadSessionStart`).
  /// @param offset The amount of data that has been uploaded so far. We use this to make sure upload data isn't lost or
  /// duplicated in the event of a network error.
  /// @param inputData The file to upload, as an NSData * object.
  ///
  /// @return Through the response callback, the caller will receive a `void` object on success or a
  /// `DBFILESUploadSessionLookupError` object on failure.
  ///
  - (DBUploadTask<DBNilObject *, DBFILESUploadSessionLookupError *> * _Nonnull)
  uploadSessionAppendData:(NSString * _Nonnull)sessionId
                   offset:(NSNumber * _Nonnull)offset
                inputData:(NSData * _Nonnull)inputData
      __deprecated_msg("upload_session/append is deprecated. Use upload_session/append_v2.");
  
  ///
  /// DEPRECATED: Append more data to an upload session. A single request should not upload more than 150 MB of file
  /// contents.
  ///
  /// @param sessionId The upload session ID (returned by `uploadSessionStart`).
  /// @param offset The amount of data that has been uploaded so far. We use this to make sure upload data isn't lost or
  /// duplicated in the event of a network error.
  /// @param inputStream The file to upload, as an NSInputStream * object.
  ///
  /// @return Through the response callback, the caller will receive a `void` object on success or a
  /// `DBFILESUploadSessionLookupError` object on failure.
  ///
  - (DBUploadTask<DBNilObject *, DBFILESUploadSessionLookupError *> * _Nonnull)
  uploadSessionAppendStream:(NSString * _Nonnull)sessionId
                     offset:(NSNumber * _Nonnull)offset
                inputStream:(NSInputStream * _Nonnull)inputStream
      __deprecated_msg("upload_session/append is deprecated. Use upload_session/append_v2.");
  
  ///
  /// Append more data to an upload session. When the parameter close is set, this call will close the session. A single
  /// request should not upload more than 150 MB of file contents.
  ///
  /// @param cursor Contains the upload session ID and the offset.
  /// @param inputUrl The file to upload, as an NSString * object.
  ///
  /// @return Through the response callback, the caller will receive a `void` object on success or a
  /// `DBFILESUploadSessionLookupError` object on failure.
  ///
  - (DBUploadTask<DBNilObject *, DBFILESUploadSessionLookupError *> * _Nonnull)
  uploadSessionAppendV2Url:(DBFILESUploadSessionCursor * _Nonnull)cursor
                  inputUrl:(NSString * _Nonnull)inputUrl;
  
  ///
  /// Append more data to an upload session. When the parameter close is set, this call will close the session. A single
  /// request should not upload more than 150 MB of file contents.
  ///
  /// @param cursor Contains the upload session ID and the offset.
  /// @param close If true, the current session will be closed, at which point you won't be able to call
  /// `uploadSessionAppendV2` anymore with the current session.
  /// @param inputUrl The file to upload, as an NSString * object.
  ///
  /// @return Through the response callback, the caller will receive a `void` object on success or a
  /// `DBFILESUploadSessionLookupError` object on failure.
  ///
  - (DBUploadTask<DBNilObject *, DBFILESUploadSessionLookupError *> * _Nonnull)
  uploadSessionAppendV2Url:(DBFILESUploadSessionCursor * _Nonnull)cursor
                     close:(NSNumber * _Nullable)close
                  inputUrl:(NSString * _Nonnull)inputUrl;
  
  ///
  /// Append more data to an upload session. When the parameter close is set, this call will close the session. A single
  /// request should not upload more than 150 MB of file contents.
  ///
  /// @param cursor Contains the upload session ID and the offset.
  /// @param inputData The file to upload, as an NSData * object.
  ///
  /// @return Through the response callback, the caller will receive a `void` object on success or a
  /// `DBFILESUploadSessionLookupError` object on failure.
  ///
  - (DBUploadTask<DBNilObject *, DBFILESUploadSessionLookupError *> * _Nonnull)
  uploadSessionAppendV2Data:(DBFILESUploadSessionCursor * _Nonnull)cursor
                  inputData:(NSData * _Nonnull)inputData;
  
  ///
  /// Append more data to an upload session. When the parameter close is set, this call will close the session. A single
  /// request should not upload more than 150 MB of file contents.
  ///
  /// @param cursor Contains the upload session ID and the offset.
  /// @param close If true, the current session will be closed, at which point you won't be able to call
  /// `uploadSessionAppendV2` anymore with the current session.
  /// @param inputData The file to upload, as an NSData * object.
  ///
  /// @return Through the response callback, the caller will receive a `void` object on success or a
  /// `DBFILESUploadSessionLookupError` object on failure.
  ///
  - (DBUploadTask<DBNilObject *, DBFILESUploadSessionLookupError *> * _Nonnull)
  uploadSessionAppendV2Data:(DBFILESUploadSessionCursor * _Nonnull)cursor
                      close:(NSNumber * _Nullable)close
                  inputData:(NSData * _Nonnull)inputData;
  
  ///
  /// Append more data to an upload session. When the parameter close is set, this call will close the session. A single
  /// request should not upload more than 150 MB of file contents.
  ///
  /// @param cursor Contains the upload session ID and the offset.
  /// @param inputStream The file to upload, as an NSInputStream * object.
  ///
  /// @return Through the response callback, the caller will receive a `void` object on success or a
  /// `DBFILESUploadSessionLookupError` object on failure.
  ///
  - (DBUploadTask<DBNilObject *, DBFILESUploadSessionLookupError *> * _Nonnull)
  uploadSessionAppendV2Stream:(DBFILESUploadSessionCursor * _Nonnull)cursor
                  inputStream:(NSInputStream * _Nonnull)inputStream;
  
  ///
  /// Append more data to an upload session. When the parameter close is set, this call will close the session. A single
  /// request should not upload more than 150 MB of file contents.
  ///
  /// @param cursor Contains the upload session ID and the offset.
  /// @param close If true, the current session will be closed, at which point you won't be able to call
  /// `uploadSessionAppendV2` anymore with the current session.
  /// @param inputStream The file to upload, as an NSInputStream * object.
  ///
  /// @return Through the response callback, the caller will receive a `void` object on success or a
  /// `DBFILESUploadSessionLookupError` object on failure.
  ///
  - (DBUploadTask<DBNilObject *, DBFILESUploadSessionLookupError *> * _Nonnull)
  uploadSessionAppendV2Stream:(DBFILESUploadSessionCursor * _Nonnull)cursor
                        close:(NSNumber * _Nullable)close
                  inputStream:(NSInputStream * _Nonnull)inputStream;
  
  ///
  /// Finish an upload session and save the uploaded data to the given file path. A single request should not upload more
  /// than 150 MB of file contents.
  ///
  /// @param cursor Contains the upload session ID and the offset.
  /// @param commit Contains the path and other optional modifiers for the commit.
  /// @param inputUrl The file to upload, as an NSString * object.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESUploadSessionFinishError` object on failure.
  ///
  - (DBUploadTask<DBFILESFileMetadata *, DBFILESUploadSessionFinishError *> * _Nonnull)
  uploadSessionFinishUrl:(DBFILESUploadSessionCursor * _Nonnull)cursor
                  commit:(DBFILESCommitInfo * _Nonnull)commit
                inputUrl:(NSString * _Nonnull)inputUrl;
  
  ///
  /// Finish an upload session and save the uploaded data to the given file path. A single request should not upload more
  /// than 150 MB of file contents.
  ///
  /// @param cursor Contains the upload session ID and the offset.
  /// @param commit Contains the path and other optional modifiers for the commit.
  /// @param inputData The file to upload, as an NSData * object.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESUploadSessionFinishError` object on failure.
  ///
  - (DBUploadTask<DBFILESFileMetadata *, DBFILESUploadSessionFinishError *> * _Nonnull)
  uploadSessionFinishData:(DBFILESUploadSessionCursor * _Nonnull)cursor
                   commit:(DBFILESCommitInfo * _Nonnull)commit
                inputData:(NSData * _Nonnull)inputData;
  
  ///
  /// Finish an upload session and save the uploaded data to the given file path. A single request should not upload more
  /// than 150 MB of file contents.
  ///
  /// @param cursor Contains the upload session ID and the offset.
  /// @param commit Contains the path and other optional modifiers for the commit.
  /// @param inputStream The file to upload, as an NSInputStream * object.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESFileMetadata` object on success or a
  /// `DBFILESUploadSessionFinishError` object on failure.
  ///
  - (DBUploadTask<DBFILESFileMetadata *, DBFILESUploadSessionFinishError *> * _Nonnull)
  uploadSessionFinishStream:(DBFILESUploadSessionCursor * _Nonnull)cursor
                     commit:(DBFILESCommitInfo * _Nonnull)commit
                inputStream:(NSInputStream * _Nonnull)inputStream;
  
  ///
  /// This route helps you commit many files at once into a user's Dropbox. Use `uploadSessionStart` and
  /// `uploadSessionAppendV2` to upload file contents. We recommend uploading many files in parallel to increase
  /// throughput. Once the file contents have been uploaded, rather than calling `uploadSessionFinish`, use this route to
  /// finish all your upload sessions in a single request. `close` in `DBFILESUploadSessionStartArg` or `close` in
  /// `DBFILESUploadSessionAppendArg` needs to be true for the last `uploadSessionStart` or `uploadSessionAppendV2` call.
  /// This route will return a job_id immediately and do the async commit job in background. Use
  /// `uploadSessionFinishBatchCheck` to check the job status. For the same account, this route should be executed
  /// serially. That means you should not start the next job before current job finishes. We allow up to 1000 entries in a
  /// single request.
  ///
  /// @param entries Commit information for each file in the batch.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESUploadSessionFinishBatchLaunch` object on
  /// success or a `void` object on failure.
  ///
  - (DBRpcTask<DBFILESUploadSessionFinishBatchLaunch *, DBNilObject *> * _Nonnull)uploadSessionFinishBatch:
      (NSArray<DBFILESUploadSessionFinishArg *> * _Nonnull)entries;
  
  ///
  /// Returns the status of an asynchronous job for `uploadSessionFinishBatch`. If success, it returns list of result for
  /// each entry.
  ///
  /// @param asyncJobId Id of the asynchronous job. This is the value of a response returned from the method that launched
  /// the job.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESUploadSessionFinishBatchJobStatus` object
  /// on success or a `DBASYNCPollError` object on failure.
  ///
  - (DBRpcTask<DBFILESUploadSessionFinishBatchJobStatus *, DBASYNCPollError *> * _Nonnull)uploadSessionFinishBatchCheck:
      (NSString * _Nonnull)asyncJobId;
  
  ///
  /// Upload sessions allow you to upload a single file in one or more requests, for example where the size of the file is
  /// greater than 150 MB.  This call starts a new upload session with the given data. You can then use
  /// `uploadSessionAppendV2` to add more data and `uploadSessionFinish` to save all the data to a file in Dropbox. A
  /// single request should not upload more than 150 MB of file contents.
  ///
  /// @param inputUrl The file to upload, as an NSString * object.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESUploadSessionStartResult` object on success
  /// or a `void` object on failure.
  ///
  - (DBUploadTask<DBFILESUploadSessionStartResult *, DBNilObject *> * _Nonnull)uploadSessionStartUrl:
      (NSString * _Nonnull)inputUrl;
  
  ///
  /// Upload sessions allow you to upload a single file in one or more requests, for example where the size of the file is
  /// greater than 150 MB.  This call starts a new upload session with the given data. You can then use
  /// `uploadSessionAppendV2` to add more data and `uploadSessionFinish` to save all the data to a file in Dropbox. A
  /// single request should not upload more than 150 MB of file contents.
  ///
  /// @param close If true, the current session will be closed, at which point you won't be able to call
  /// `uploadSessionAppendV2` anymore with the current session.
  /// @param inputUrl The file to upload, as an NSString * object.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESUploadSessionStartResult` object on success
  /// or a `void` object on failure.
  ///
  - (DBUploadTask<DBFILESUploadSessionStartResult *, DBNilObject *> * _Nonnull)
  uploadSessionStartUrl:(NSNumber * _Nullable)close
               inputUrl:(NSString * _Nonnull)inputUrl;
  
  ///
  /// Upload sessions allow you to upload a single file in one or more requests, for example where the size of the file is
  /// greater than 150 MB.  This call starts a new upload session with the given data. You can then use
  /// `uploadSessionAppendV2` to add more data and `uploadSessionFinish` to save all the data to a file in Dropbox. A
  /// single request should not upload more than 150 MB of file contents.
  ///
  /// @param inputData The file to upload, as an NSData * object.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESUploadSessionStartResult` object on success
  /// or a `void` object on failure.
  ///
  - (DBUploadTask<DBFILESUploadSessionStartResult *, DBNilObject *> * _Nonnull)uploadSessionStartData:
      (NSData * _Nonnull)inputData;
  
  ///
  /// Upload sessions allow you to upload a single file in one or more requests, for example where the size of the file is
  /// greater than 150 MB.  This call starts a new upload session with the given data. You can then use
  /// `uploadSessionAppendV2` to add more data and `uploadSessionFinish` to save all the data to a file in Dropbox. A
  /// single request should not upload more than 150 MB of file contents.
  ///
  /// @param close If true, the current session will be closed, at which point you won't be able to call
  /// `uploadSessionAppendV2` anymore with the current session.
  /// @param inputData The file to upload, as an NSData * object.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESUploadSessionStartResult` object on success
  /// or a `void` object on failure.
  ///
  - (DBUploadTask<DBFILESUploadSessionStartResult *, DBNilObject *> * _Nonnull)
  uploadSessionStartData:(NSNumber * _Nullable)close
               inputData:(NSData * _Nonnull)inputData;
  
  ///
  /// Upload sessions allow you to upload a single file in one or more requests, for example where the size of the file is
  /// greater than 150 MB.  This call starts a new upload session with the given data. You can then use
  /// `uploadSessionAppendV2` to add more data and `uploadSessionFinish` to save all the data to a file in Dropbox. A
  /// single request should not upload more than 150 MB of file contents.
  ///
  /// @param inputStream The file to upload, as an NSInputStream * object.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESUploadSessionStartResult` object on success
  /// or a `void` object on failure.
  ///
  - (DBUploadTask<DBFILESUploadSessionStartResult *, DBNilObject *> * _Nonnull)uploadSessionStartStream:
      (NSInputStream * _Nonnull)inputStream;
  
  ///
  /// Upload sessions allow you to upload a single file in one or more requests, for example where the size of the file is
  /// greater than 150 MB.  This call starts a new upload session with the given data. You can then use
  /// `uploadSessionAppendV2` to add more data and `uploadSessionFinish` to save all the data to a file in Dropbox. A
  /// single request should not upload more than 150 MB of file contents.
  ///
  /// @param close If true, the current session will be closed, at which point you won't be able to call
  /// `uploadSessionAppendV2` anymore with the current session.
  /// @param inputStream The file to upload, as an NSInputStream * object.
  ///
  /// @return Through the response callback, the caller will receive a `DBFILESUploadSessionStartResult` object on success
  /// or a `void` object on failure.
  ///
  - (DBUploadTask<DBFILESUploadSessionStartResult *, DBNilObject *> * _Nonnull)
  uploadSessionStartStream:(NSNumber * _Nullable)close
               inputStream:(NSInputStream * _Nonnull)inputStream;
  
  @end
  