UNPKG

dropbox

Version:

The Dropbox JavaScript SDK is a lightweight, promise based interface to the Dropbox v2 API that works in both nodejs and browser environments.

1,100 lines (1,013 loc) 190 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global.Dropbox = factory()); }(this, (function () { 'use strict'; // Auto-generated by Stone, do not modify. var routes = {}; /** * Creates an OAuth 2.0 access token from the supplied OAuth 1.0 access token. * @function Dropbox#authTokenFromOauth1 * @arg {AuthTokenFromOAuth1Arg} arg - The request parameters. * @returns {Promise.<AuthTokenFromOAuth1Result, Error.<AuthTokenFromOAuth1Error>>} */ routes.authTokenFromOauth1 = function (arg) { return this.request('auth/token/from_oauth1', arg, 'app', 'api', 'rpc'); }; /** * Disables the access token used to authenticate the call. * @function Dropbox#authTokenRevoke * @arg {void} arg - The request parameters. * @returns {Promise.<void, Error.<void>>} */ routes.authTokenRevoke = function (arg) { return this.request('auth/token/revoke', arg, 'user', 'api', 'rpc'); }; /** * Removes all manually added contacts. You'll still keep contacts who are on * your team or who you imported. New contacts will be added when you share. * @function Dropbox#contactsDeleteManualContacts * @arg {void} arg - The request parameters. * @returns {Promise.<void, Error.<void>>} */ routes.contactsDeleteManualContacts = function (arg) { return this.request('contacts/delete_manual_contacts', arg, 'user', 'api', 'rpc'); }; /** * Removes manually added contacts from the given list. * @function Dropbox#contactsDeleteManualContactsBatch * @arg {ContactsDeleteManualContactsArg} arg - The request parameters. * @returns {Promise.<void, Error.<ContactsDeleteManualContactsError>>} */ routes.contactsDeleteManualContactsBatch = function (arg) { return this.request('contacts/delete_manual_contacts_batch', arg, 'user', 'api', 'rpc'); }; /** * Add property groups to a Dropbox file. See templates/add_for_user or * templates/add_for_team to create new templates. * @function Dropbox#filePropertiesPropertiesAdd * @arg {FilePropertiesAddPropertiesArg} arg - The request parameters. * @returns {Promise.<void, Error.<FilePropertiesAddPropertiesError>>} */ routes.filePropertiesPropertiesAdd = function (arg) { return this.request('file_properties/properties/add', arg, 'user', 'api', 'rpc'); }; /** * Overwrite property groups associated with a file. This endpoint should be * used instead of properties/update when property groups are being updated via * a "snapshot" instead of via a "delta". In other words, this endpoint will * delete all omitted fields from a property group, whereas properties/update * will only delete fields that are explicitly marked for deletion. * @function Dropbox#filePropertiesPropertiesOverwrite * @arg {FilePropertiesOverwritePropertyGroupArg} arg - The request parameters. * @returns {Promise.<void, Error.<FilePropertiesInvalidPropertyGroupError>>} */ routes.filePropertiesPropertiesOverwrite = function (arg) { return this.request('file_properties/properties/overwrite', arg, 'user', 'api', 'rpc'); }; /** * Permanently removes the specified property group from the file. To remove * specific property field key value pairs, see properties/update. To update a * template, see templates/update_for_user or templates/update_for_team. To * remove a template, see templates/remove_for_user or * templates/remove_for_team. * @function Dropbox#filePropertiesPropertiesRemove * @arg {FilePropertiesRemovePropertiesArg} arg - The request parameters. * @returns {Promise.<void, Error.<FilePropertiesRemovePropertiesError>>} */ routes.filePropertiesPropertiesRemove = function (arg) { return this.request('file_properties/properties/remove', arg, 'user', 'api', 'rpc'); }; /** * Search across property templates for particular property field values. * @function Dropbox#filePropertiesPropertiesSearch * @arg {FilePropertiesPropertiesSearchArg} arg - The request parameters. * @returns {Promise.<FilePropertiesPropertiesSearchResult, Error.<FilePropertiesPropertiesSearchError>>} */ routes.filePropertiesPropertiesSearch = function (arg) { return this.request('file_properties/properties/search', arg, 'user', 'api', 'rpc'); }; /** * Once a cursor has been retrieved from properties/search, use this to paginate * through all search results. * @function Dropbox#filePropertiesPropertiesSearchContinue * @arg {FilePropertiesPropertiesSearchContinueArg} arg - The request parameters. * @returns {Promise.<FilePropertiesPropertiesSearchResult, Error.<FilePropertiesPropertiesSearchContinueError>>} */ routes.filePropertiesPropertiesSearchContinue = function (arg) { return this.request('file_properties/properties/search/continue', arg, 'user', 'api', 'rpc'); }; /** * Add, update or remove properties associated with the supplied file and * templates. This endpoint should be used instead of properties/overwrite when * property groups are being updated via a "delta" instead of via a "snapshot" . * In other words, this endpoint will not delete any omitted fields from a * property group, whereas properties/overwrite will delete any fields that are * omitted from a property group. * @function Dropbox#filePropertiesPropertiesUpdate * @arg {FilePropertiesUpdatePropertiesArg} arg - The request parameters. * @returns {Promise.<void, Error.<FilePropertiesUpdatePropertiesError>>} */ routes.filePropertiesPropertiesUpdate = function (arg) { return this.request('file_properties/properties/update', arg, 'user', 'api', 'rpc'); }; /** * Add a template associated with a team. See properties/add to add properties * to a file or folder. Note: this endpoint will create team-owned templates. * @function Dropbox#filePropertiesTemplatesAddForTeam * @arg {FilePropertiesAddTemplateArg} arg - The request parameters. * @returns {Promise.<FilePropertiesAddTemplateResult, Error.<FilePropertiesModifyTemplateError>>} */ routes.filePropertiesTemplatesAddForTeam = function (arg) { return this.request('file_properties/templates/add_for_team', arg, 'team', 'api', 'rpc'); }; /** * Add a template associated with a user. See properties/add to add properties * to a file. This endpoint can't be called on a team member or admin's behalf. * @function Dropbox#filePropertiesTemplatesAddForUser * @arg {FilePropertiesAddTemplateArg} arg - The request parameters. * @returns {Promise.<FilePropertiesAddTemplateResult, Error.<FilePropertiesModifyTemplateError>>} */ routes.filePropertiesTemplatesAddForUser = function (arg) { return this.request('file_properties/templates/add_for_user', arg, 'user', 'api', 'rpc'); }; /** * Get the schema for a specified template. * @function Dropbox#filePropertiesTemplatesGetForTeam * @arg {FilePropertiesGetTemplateArg} arg - The request parameters. * @returns {Promise.<FilePropertiesGetTemplateResult, Error.<FilePropertiesTemplateError>>} */ routes.filePropertiesTemplatesGetForTeam = function (arg) { return this.request('file_properties/templates/get_for_team', arg, 'team', 'api', 'rpc'); }; /** * Get the schema for a specified template. This endpoint can't be called on a * team member or admin's behalf. * @function Dropbox#filePropertiesTemplatesGetForUser * @arg {FilePropertiesGetTemplateArg} arg - The request parameters. * @returns {Promise.<FilePropertiesGetTemplateResult, Error.<FilePropertiesTemplateError>>} */ routes.filePropertiesTemplatesGetForUser = function (arg) { return this.request('file_properties/templates/get_for_user', arg, 'user', 'api', 'rpc'); }; /** * Get the template identifiers for a team. To get the schema of each template * use templates/get_for_team. * @function Dropbox#filePropertiesTemplatesListForTeam * @arg {void} arg - The request parameters. * @returns {Promise.<FilePropertiesListTemplateResult, Error.<FilePropertiesTemplateError>>} */ routes.filePropertiesTemplatesListForTeam = function (arg) { return this.request('file_properties/templates/list_for_team', arg, 'team', 'api', 'rpc'); }; /** * Get the template identifiers for a team. To get the schema of each template * use templates/get_for_user. This endpoint can't be called on a team member or * admin's behalf. * @function Dropbox#filePropertiesTemplatesListForUser * @arg {void} arg - The request parameters. * @returns {Promise.<FilePropertiesListTemplateResult, Error.<FilePropertiesTemplateError>>} */ routes.filePropertiesTemplatesListForUser = function (arg) { return this.request('file_properties/templates/list_for_user', arg, 'user', 'api', 'rpc'); }; /** * Permanently removes the specified template created from * templates/add_for_user. All properties associated with the template will also * be removed. This action cannot be undone. * @function Dropbox#filePropertiesTemplatesRemoveForTeam * @arg {FilePropertiesRemoveTemplateArg} arg - The request parameters. * @returns {Promise.<void, Error.<FilePropertiesTemplateError>>} */ routes.filePropertiesTemplatesRemoveForTeam = function (arg) { return this.request('file_properties/templates/remove_for_team', arg, 'team', 'api', 'rpc'); }; /** * Permanently removes the specified template created from * templates/add_for_user. All properties associated with the template will also * be removed. This action cannot be undone. * @function Dropbox#filePropertiesTemplatesRemoveForUser * @arg {FilePropertiesRemoveTemplateArg} arg - The request parameters. * @returns {Promise.<void, Error.<FilePropertiesTemplateError>>} */ routes.filePropertiesTemplatesRemoveForUser = function (arg) { return this.request('file_properties/templates/remove_for_user', arg, 'user', 'api', 'rpc'); }; /** * Update a template associated with a team. This route can update the template * name, the template description and add optional properties to templates. * @function Dropbox#filePropertiesTemplatesUpdateForTeam * @arg {FilePropertiesUpdateTemplateArg} arg - The request parameters. * @returns {Promise.<FilePropertiesUpdateTemplateResult, Error.<FilePropertiesModifyTemplateError>>} */ routes.filePropertiesTemplatesUpdateForTeam = function (arg) { return this.request('file_properties/templates/update_for_team', arg, 'team', 'api', 'rpc'); }; /** * Update a template associated with a user. This route can update the template * name, the template description and add optional properties to templates. This * endpoint can't be called on a team member or admin's behalf. * @function Dropbox#filePropertiesTemplatesUpdateForUser * @arg {FilePropertiesUpdateTemplateArg} arg - The request parameters. * @returns {Promise.<FilePropertiesUpdateTemplateResult, Error.<FilePropertiesModifyTemplateError>>} */ routes.filePropertiesTemplatesUpdateForUser = function (arg) { return this.request('file_properties/templates/update_for_user', arg, 'user', 'api', 'rpc'); }; /** * Creates a file request for this user. * @function Dropbox#fileRequestsCreate * @arg {FileRequestsCreateFileRequestArgs} arg - The request parameters. * @returns {Promise.<FileRequestsFileRequest, Error.<FileRequestsCreateFileRequestError>>} */ routes.fileRequestsCreate = function (arg) { return this.request('file_requests/create', arg, 'user', 'api', 'rpc'); }; /** * Returns the specified file request. * @function Dropbox#fileRequestsGet * @arg {FileRequestsGetFileRequestArgs} arg - The request parameters. * @returns {Promise.<FileRequestsFileRequest, Error.<FileRequestsGetFileRequestError>>} */ routes.fileRequestsGet = function (arg) { return this.request('file_requests/get', arg, 'user', 'api', 'rpc'); }; /** * Returns a list of file requests owned by this user. For apps with the app * folder permission, this will only return file requests with destinations in * the app folder. * @function Dropbox#fileRequestsList * @arg {void} arg - The request parameters. * @returns {Promise.<FileRequestsListFileRequestsResult, Error.<FileRequestsListFileRequestsError>>} */ routes.fileRequestsList = function (arg) { return this.request('file_requests/list', arg, 'user', 'api', 'rpc'); }; /** * Update a file request. * @function Dropbox#fileRequestsUpdate * @arg {FileRequestsUpdateFileRequestArgs} arg - The request parameters. * @returns {Promise.<FileRequestsFileRequest, Error.<FileRequestsUpdateFileRequestError>>} */ routes.fileRequestsUpdate = function (arg) { return this.request('file_requests/update', arg, 'user', 'api', 'rpc'); }; /** * 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. * @function Dropbox#filesAlphaGetMetadata * @deprecated * @arg {FilesAlphaGetMetadataArg} arg - The request parameters. * @returns {Promise.<(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata), Error.<FilesAlphaGetMetadataError>>} */ routes.filesAlphaGetMetadata = function (arg) { return this.request('files/alpha/get_metadata', arg, 'user', 'api', 'rpc'); }; /** * 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 upload_session/start. * @function Dropbox#filesAlphaUpload * @deprecated * @arg {FilesCommitInfoWithProperties} arg - The request parameters. * @returns {Promise.<FilesFileMetadata, Error.<FilesUploadErrorWithProperties>>} */ routes.filesAlphaUpload = function (arg) { return this.request('files/alpha/upload', arg, 'user', 'content', 'upload'); }; /** * 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. * @function Dropbox#filesCopyV2 * @arg {FilesRelocationArg} arg - The request parameters. * @returns {Promise.<FilesRelocationResult, Error.<FilesRelocationError>>} */ routes.filesCopyV2 = function (arg) { return this.request('files/copy_v2', arg, 'user', 'api', 'rpc'); }; /** * 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. * @function Dropbox#filesCopy * @deprecated * @arg {FilesRelocationArg} arg - The request parameters. * @returns {Promise.<(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata), Error.<FilesRelocationError>>} */ routes.filesCopy = function (arg) { return this.request('files/copy', arg, 'user', 'api', 'rpc'); }; /** * Copy multiple files or folders to different locations at once in the user's * Dropbox. This route will replace copy_batch. The main difference is this * route will return stutus for each entry, while copy_batch raises failure if * any entry fails. This route will either finish synchronously, or return a job * ID and do the async copy job in background. Please use copy_batch/check_v2 to * check the job status. * @function Dropbox#filesCopyBatchV2 * @arg {Object} arg - The request parameters. * @returns {Promise.<FilesRelocationBatchV2Launch, Error.<void>>} */ routes.filesCopyBatchV2 = function (arg) { return this.request('files/copy_batch_v2', arg, 'user', 'api', 'rpc'); }; /** * Copy multiple files or folders to different locations at once in the user's * Dropbox. If RelocationBatchArg.allow_shared_folder is false, this route is * atomic. If one entry fails, the whole transaction will abort. If * RelocationBatchArg.allow_shared_folder is true, atomicity is not guaranteed, * but it allows you 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 copy_batch/check to check the job status. * @function Dropbox#filesCopyBatch * @deprecated * @arg {FilesRelocationBatchArg} arg - The request parameters. * @returns {Promise.<FilesRelocationBatchLaunch, Error.<void>>} */ routes.filesCopyBatch = function (arg) { return this.request('files/copy_batch', arg, 'user', 'api', 'rpc'); }; /** * Returns the status of an asynchronous job for copy_batch_v2. It returns list * of results for each entry. * @function Dropbox#filesCopyBatchCheckV2 * @arg {AsyncPollArg} arg - The request parameters. * @returns {Promise.<FilesRelocationBatchV2JobStatus, Error.<AsyncPollError>>} */ routes.filesCopyBatchCheckV2 = function (arg) { return this.request('files/copy_batch/check_v2', arg, 'user', 'api', 'rpc'); }; /** * Returns the status of an asynchronous job for copy_batch. If success, it * returns list of results for each entry. * @function Dropbox#filesCopyBatchCheck * @deprecated * @arg {AsyncPollArg} arg - The request parameters. * @returns {Promise.<FilesRelocationBatchJobStatus, Error.<AsyncPollError>>} */ routes.filesCopyBatchCheck = function (arg) { return this.request('files/copy_batch/check', arg, 'user', 'api', 'rpc'); }; /** * 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 * copy_reference/save. * @function Dropbox#filesCopyReferenceGet * @arg {FilesGetCopyReferenceArg} arg - The request parameters. * @returns {Promise.<FilesGetCopyReferenceResult, Error.<FilesGetCopyReferenceError>>} */ routes.filesCopyReferenceGet = function (arg) { return this.request('files/copy_reference/get', arg, 'user', 'api', 'rpc'); }; /** * Save a copy reference returned by copy_reference/get to the user's Dropbox. * @function Dropbox#filesCopyReferenceSave * @arg {FilesSaveCopyReferenceArg} arg - The request parameters. * @returns {Promise.<FilesSaveCopyReferenceResult, Error.<FilesSaveCopyReferenceError>>} */ routes.filesCopyReferenceSave = function (arg) { return this.request('files/copy_reference/save', arg, 'user', 'api', 'rpc'); }; /** * Create a folder at a given path. * @function Dropbox#filesCreateFolderV2 * @arg {FilesCreateFolderArg} arg - The request parameters. * @returns {Promise.<FilesCreateFolderResult, Error.<FilesCreateFolderError>>} */ routes.filesCreateFolderV2 = function (arg) { return this.request('files/create_folder_v2', arg, 'user', 'api', 'rpc'); }; /** * Create a folder at a given path. * @function Dropbox#filesCreateFolder * @deprecated * @arg {FilesCreateFolderArg} arg - The request parameters. * @returns {Promise.<FilesFolderMetadata, Error.<FilesCreateFolderError>>} */ routes.filesCreateFolder = function (arg) { return this.request('files/create_folder', arg, 'user', 'api', 'rpc'); }; /** * Create multiple folders at once. This route is asynchronous for large * batches, which returns a job ID immediately and runs the create folder batch * asynchronously. Otherwise, creates the folders and returns the result * synchronously for smaller inputs. You can force asynchronous behaviour by * using the CreateFolderBatchArg.force_async flag. Use * create_folder_batch/check to check the job status. * @function Dropbox#filesCreateFolderBatch * @arg {FilesCreateFolderBatchArg} arg - The request parameters. * @returns {Promise.<FilesCreateFolderBatchLaunch, Error.<void>>} */ routes.filesCreateFolderBatch = function (arg) { return this.request('files/create_folder_batch', arg, 'user', 'api', 'rpc'); }; /** * Returns the status of an asynchronous job for create_folder_batch. If * success, it returns list of result for each entry. * @function Dropbox#filesCreateFolderBatchCheck * @arg {AsyncPollArg} arg - The request parameters. * @returns {Promise.<FilesCreateFolderBatchJobStatus, Error.<AsyncPollError>>} */ routes.filesCreateFolderBatchCheck = function (arg) { return this.request('files/create_folder_batch/check', arg, 'user', 'api', 'rpc'); }; /** * 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. * @function Dropbox#filesDeleteV2 * @arg {FilesDeleteArg} arg - The request parameters. * @returns {Promise.<FilesDeleteResult, Error.<FilesDeleteError>>} */ routes.filesDeleteV2 = function (arg) { return this.request('files/delete_v2', arg, 'user', 'api', 'rpc'); }; /** * 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. * @function Dropbox#filesDelete * @deprecated * @arg {FilesDeleteArg} arg - The request parameters. * @returns {Promise.<(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata), Error.<FilesDeleteError>>} */ routes.filesDelete = function (arg) { return this.request('files/delete', arg, 'user', 'api', 'rpc'); }; /** * Delete multiple files/folders at once. This route is asynchronous, which * returns a job ID immediately and runs the delete batch asynchronously. Use * delete_batch/check to check the job status. * @function Dropbox#filesDeleteBatch * @arg {FilesDeleteBatchArg} arg - The request parameters. * @returns {Promise.<FilesDeleteBatchLaunch, Error.<void>>} */ routes.filesDeleteBatch = function (arg) { return this.request('files/delete_batch', arg, 'user', 'api', 'rpc'); }; /** * Returns the status of an asynchronous job for delete_batch. If success, it * returns list of result for each entry. * @function Dropbox#filesDeleteBatchCheck * @arg {AsyncPollArg} arg - The request parameters. * @returns {Promise.<FilesDeleteBatchJobStatus, Error.<AsyncPollError>>} */ routes.filesDeleteBatchCheck = function (arg) { return this.request('files/delete_batch/check', arg, 'user', 'api', 'rpc'); }; /** * Download a file from a user's Dropbox. * @function Dropbox#filesDownload * @arg {FilesDownloadArg} arg - The request parameters. * @returns {Promise.<FilesFileMetadata, Error.<FilesDownloadError>>} */ routes.filesDownload = function (arg) { return this.request('files/download', arg, 'user', 'content', 'download'); }; /** * Download a folder from the user's Dropbox, as a zip file. The folder must be * less than 20 GB in size and have fewer than 10,000 total files. The input * cannot be a single file. Any single file must be less than 4GB in size. * @function Dropbox#filesDownloadZip * @arg {FilesDownloadZipArg} arg - The request parameters. * @returns {Promise.<FilesDownloadZipResult, Error.<FilesDownloadZipError>>} */ routes.filesDownloadZip = function (arg) { return this.request('files/download_zip', arg, 'user', 'content', 'download'); }; /** * Returns the metadata for a file or folder. Note: Metadata for the root folder * is unsupported. * @function Dropbox#filesGetMetadata * @arg {FilesGetMetadataArg} arg - The request parameters. * @returns {Promise.<(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata), Error.<FilesGetMetadataError>>} */ routes.filesGetMetadata = function (arg) { return this.request('files/get_metadata', arg, 'user', 'api', 'rpc'); }; /** * Get a preview for a file. Currently, PDF previews are generated for files * with the following extensions: .ai, .doc, .docm, .docx, .eps, .odp, .odt, * .pps, .ppsm, .ppsx, .ppt, .pptm, .pptx, .rtf. HTML previews are generated for * files with the following extensions: .csv, .ods, .xls, .xlsm, .xlsx. Other * formats will return an unsupported extension error. * @function Dropbox#filesGetPreview * @arg {FilesPreviewArg} arg - The request parameters. * @returns {Promise.<FilesFileMetadata, Error.<FilesPreviewError>>} */ routes.filesGetPreview = function (arg) { return this.request('files/get_preview', arg, 'user', 'content', 'download'); }; /** * Get a temporary link to stream content of a file. This link will expire in * four hours and afterwards you will get 410 Gone. So this URL should not be * used to display content directly in the browser. Content-Type of the link is * determined automatically by the file's mime type. * @function Dropbox#filesGetTemporaryLink * @arg {FilesGetTemporaryLinkArg} arg - The request parameters. * @returns {Promise.<FilesGetTemporaryLinkResult, Error.<FilesGetTemporaryLinkError>>} */ routes.filesGetTemporaryLink = function (arg) { return this.request('files/get_temporary_link', arg, 'user', 'api', 'rpc'); }; /** * Get a one-time use temporary upload link to upload a file to a Dropbox * location. This endpoint acts as a delayed upload. The returned temporary * upload link may be used to make a POST request with the data to be uploaded. * The upload will then be perfomed with the CommitInfo previously provided to * get_temporary_upload_link but evaluated only upon consumption. Hence, errors * stemming from invalid CommitInfo with respect to the state of the user's * Dropbox will only be communicated at consumption time. Additionally, these * errors are surfaced as generic HTTP 409 Conflict responses, potentially * hiding issue details. The maximum temporary upload link duration is 4 hours. * Upon consumption or expiration, a new link will have to be generated. * Multiple links may exist for a specific upload path at any given time. The * POST request on the temporary upload link must have its Content-Type set to * "application/octet-stream". Example temporary upload link consumption * request: curl -X POST * https://dl.dropboxusercontent.com/apitul/1/bNi2uIYF51cVBND --header * "Content-Type: application/octet-stream" --data-binary @local_file.txt A * successful temporary upload link consumption request returns the content hash * of the uploaded data in JSON format. Example succesful temporary upload link * consumption response: {"content-hash": * "599d71033d700ac892a0e48fa61b125d2f5994"} An unsuccessful temporary upload * link consumption request returns any of the following status codes: HTTP 400 * Bad Request: Content-Type is not one of application/octet-stream and * text/plain or request is invalid. HTTP 409 Conflict: The temporary upload * link does not exist or is currently unavailable, the upload failed, or * another error happened. HTTP 410 Gone: The temporary upload link is expired * or consumed. Example unsuccessful temporary upload link consumption * response: Temporary upload link has been recently consumed. * @function Dropbox#filesGetTemporaryUploadLink * @arg {FilesGetTemporaryUploadLinkArg} arg - The request parameters. * @returns {Promise.<FilesGetTemporaryUploadLinkResult, Error.<void>>} */ routes.filesGetTemporaryUploadLink = function (arg) { return this.request('files/get_temporary_upload_link', arg, 'user', 'api', 'rpc'); }; /** * 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. * @function Dropbox#filesGetThumbnail * @arg {FilesThumbnailArg} arg - The request parameters. * @returns {Promise.<FilesFileMetadata, Error.<FilesThumbnailError>>} */ routes.filesGetThumbnail = function (arg) { return this.request('files/get_thumbnail', arg, 'user', 'content', 'download'); }; /** * Get thumbnails for a list of images. We allow up to 25 thumbnails in a single * batch. 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. * @function Dropbox#filesGetThumbnailBatch * @arg {FilesGetThumbnailBatchArg} arg - The request parameters. * @returns {Promise.<FilesGetThumbnailBatchResult, Error.<FilesGetThumbnailBatchError>>} */ routes.filesGetThumbnailBatch = function (arg) { return this.request('files/get_thumbnail_batch', arg, 'user', 'content', 'rpc'); }; /** * Starts returning the contents of a folder. If the result's * ListFolderResult.has_more field is true, call list_folder/continue with the * returned ListFolderResult.cursor to retrieve more entries. If you're using * ListFolderArg.recursive 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 FolderSharingInfo.read_only 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. Note: * auth.RateLimitError may be returned if multiple list_folder or * list_folder/continue calls with same parameters are made simultaneously by * same API app for same user. If your app implements retry logic, please hold * off the retry until the previous request finishes. * @function Dropbox#filesListFolder * @arg {FilesListFolderArg} arg - The request parameters. * @returns {Promise.<FilesListFolderResult, Error.<FilesListFolderError>>} */ routes.filesListFolder = function (arg) { return this.request('files/list_folder', arg, 'user', 'api', 'rpc'); }; /** * Once a cursor has been retrieved from list_folder, use this to paginate * through all files and retrieve updates to the folder, following the same * rules as documented for list_folder. * @function Dropbox#filesListFolderContinue * @arg {FilesListFolderContinueArg} arg - The request parameters. * @returns {Promise.<FilesListFolderResult, Error.<FilesListFolderContinueError>>} */ routes.filesListFolderContinue = function (arg) { return this.request('files/list_folder/continue', arg, 'user', 'api', 'rpc'); }; /** * A way to quickly get a cursor for the folder's state. Unlike list_folder, * list_folder/get_latest_cursor 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. * @function Dropbox#filesListFolderGetLatestCursor * @arg {FilesListFolderArg} arg - The request parameters. * @returns {Promise.<FilesListFolderGetLatestCursorResult, Error.<FilesListFolderError>>} */ routes.filesListFolderGetLatestCursor = function (arg) { return this.request('files/list_folder/get_latest_cursor', arg, 'user', 'api', 'rpc'); }; /** * A longpoll endpoint to wait for changes on an account. In conjunction with * list_folder/continue, 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. * @function Dropbox#filesListFolderLongpoll * @arg {FilesListFolderLongpollArg} arg - The request parameters. * @returns {Promise.<FilesListFolderLongpollResult, Error.<FilesListFolderLongpollError>>} */ routes.filesListFolderLongpoll = function (arg) { return this.request('files/list_folder/longpoll', arg, 'noauth', 'notify', 'rpc'); }; /** * Returns revisions for files based on a file path or a file id. The file path * or file id is identified from the latest file entry at the given file path or * id. This end point allows your app to query either by file path or file id by * setting the mode parameter appropriately. In the ListRevisionsMode.path * (default) mode, all revisions at the same file path as the latest file entry * are returned. If revisions with the same file id are desired, then mode must * be set to ListRevisionsMode.id. The ListRevisionsMode.id mode is useful to * retrieve revisions for a given file across moves or renames. * @function Dropbox#filesListRevisions * @arg {FilesListRevisionsArg} arg - The request parameters. * @returns {Promise.<FilesListRevisionsResult, Error.<FilesListRevisionsError>>} */ routes.filesListRevisions = function (arg) { return this.request('files/list_revisions', arg, 'user', 'api', 'rpc'); }; /** * 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. * @function Dropbox#filesMoveV2 * @arg {FilesRelocationArg} arg - The request parameters. * @returns {Promise.<FilesRelocationResult, Error.<FilesRelocationError>>} */ routes.filesMoveV2 = function (arg) { return this.request('files/move_v2', arg, 'user', 'api', 'rpc'); }; /** * 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. * @function Dropbox#filesMove * @deprecated * @arg {FilesRelocationArg} arg - The request parameters. * @returns {Promise.<(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata), Error.<FilesRelocationError>>} */ routes.filesMove = function (arg) { return this.request('files/move', arg, 'user', 'api', 'rpc'); }; /** * Move multiple files or folders to different locations at once in the user's * Dropbox. This route will replace move_batch_v2. The main difference is this * route will return stutus for each entry, while move_batch raises failure if * any entry fails. This route will either finish synchronously, or return a job * ID and do the async move job in background. Please use move_batch/check_v2 to * check the job status. * @function Dropbox#filesMoveBatchV2 * @arg {FilesMoveBatchArg} arg - The request parameters. * @returns {Promise.<FilesRelocationBatchV2Launch, Error.<void>>} */ routes.filesMoveBatchV2 = function (arg) { return this.request('files/move_batch_v2', arg, 'user', 'api', 'rpc'); }; /** * 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 move_batch/check to check * the job status. * @function Dropbox#filesMoveBatch * @arg {FilesRelocationBatchArg} arg - The request parameters. * @returns {Promise.<FilesRelocationBatchLaunch, Error.<void>>} */ routes.filesMoveBatch = function (arg) { return this.request('files/move_batch', arg, 'user', 'api', 'rpc'); }; /** * Returns the status of an asynchronous job for move_batch_v2. It returns list * of results for each entry. * @function Dropbox#filesMoveBatchCheckV2 * @arg {AsyncPollArg} arg - The request parameters. * @returns {Promise.<FilesRelocationBatchV2JobStatus, Error.<AsyncPollError>>} */ routes.filesMoveBatchCheckV2 = function (arg) { return this.request('files/move_batch/check_v2', arg, 'user', 'api', 'rpc'); }; /** * Returns the status of an asynchronous job for move_batch. If success, it * returns list of results for each entry. * @function Dropbox#filesMoveBatchCheck * @arg {AsyncPollArg} arg - The request parameters. * @returns {Promise.<FilesRelocationBatchJobStatus, Error.<AsyncPollError>>} */ routes.filesMoveBatchCheck = function (arg) { return this.request('files/move_batch/check', arg, 'user', 'api', 'rpc'); }; /** * 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. * @function Dropbox#filesPermanentlyDelete * @arg {FilesDeleteArg} arg - The request parameters. * @returns {Promise.<void, Error.<FilesDeleteError>>} */ routes.filesPermanentlyDelete = function (arg) { return this.request('files/permanently_delete', arg, 'user', 'api', 'rpc'); }; /** * @function Dropbox#filesPropertiesAdd * @deprecated * @arg {FilePropertiesAddPropertiesArg} arg - The request parameters. * @returns {Promise.<void, Error.<FilePropertiesAddPropertiesError>>} */ routes.filesPropertiesAdd = function (arg) { return this.request('files/properties/add', arg, 'user', 'api', 'rpc'); }; /** * @function Dropbox#filesPropertiesOverwrite * @deprecated * @arg {FilePropertiesOverwritePropertyGroupArg} arg - The request parameters. * @returns {Promise.<void, Error.<FilePropertiesInvalidPropertyGroupError>>} */ routes.filesPropertiesOverwrite = function (arg) { return this.request('files/properties/overwrite', arg, 'user', 'api', 'rpc'); }; /** * @function Dropbox#filesPropertiesRemove * @deprecated * @arg {FilePropertiesRemovePropertiesArg} arg - The request parameters. * @returns {Promise.<void, Error.<FilePropertiesRemovePropertiesError>>} */ routes.filesPropertiesRemove = function (arg) { return this.request('files/properties/remove', arg, 'user', 'api', 'rpc'); }; /** * @function Dropbox#filesPropertiesTemplateGet * @deprecated * @arg {FilePropertiesGetTemplateArg} arg - The request parameters. * @returns {Promise.<FilePropertiesGetTemplateResult, Error.<FilePropertiesTemplateError>>} */ routes.filesPropertiesTemplateGet = function (arg) { return this.request('files/properties/template/get', arg, 'user', 'api', 'rpc'); }; /** * @function Dropbox#filesPropertiesTemplateList * @deprecated * @arg {void} arg - The request parameters. * @returns {Promise.<FilePropertiesListTemplateResult, Error.<FilePropertiesTemplateError>>} */ routes.filesPropertiesTemplateList = function (arg) { return this.request('files/properties/template/list', arg, 'user', 'api', 'rpc'); }; /** * @function Dropbox#filesPropertiesUpdate * @deprecated * @arg {FilePropertiesUpdatePropertiesArg} arg - The request parameters. * @returns {Promise.<void, Error.<FilePropertiesUpdatePropertiesError>>} */ routes.filesPropertiesUpdate = function (arg) { return this.request('files/properties/update', arg, 'user', 'api', 'rpc'); }; /** * Restore a specific revision of a file to the given path. * @function Dropbox#filesRestore * @arg {FilesRestoreArg} arg - The request parameters. * @returns {Promise.<FilesFileMetadata, Error.<FilesRestoreError>>} */ routes.filesRestore = function (arg) { return this.request('files/restore', arg, 'user', 'api', 'rpc'); }; /** * Save the data from a specified URL into a file in user's Dropbox. Note that * the transfer from the URL must complete within 5 minutes, or the operation * will time out and the job will fail. If the given path already exists, the * file will be renamed to avoid the conflict (e.g. myfile (1).txt). * @function Dropbox#filesSaveUrl * @arg {FilesSaveUrlArg} arg - The request parameters. * @returns {Promise.<FilesSaveUrlResult, Error.<FilesSaveUrlError>>} */ routes.filesSaveUrl = function (arg) { return this.request('files/save_url', arg, 'user', 'api', 'rpc'); }; /** * Check the status of a save_url job. * @function Dropbox#filesSaveUrlCheckJobStatus * @arg {AsyncPollArg} arg - The request parameters. * @returns {Promise.<FilesSaveUrlJobStatus, Error.<AsyncPollError>>} */ routes.filesSaveUrlCheckJobStatus = function (arg) { return this.request('files/save_url/check_job_status', arg, 'user', 'api', 'rpc'); }; /** * Searches for files and folders. Note: Recent changes may not immediately be * reflected in search results due to a short delay in indexing. * @function Dropbox#filesSearch * @arg {FilesSearchArg} arg - The request parameters. * @returns {Promise.<FilesSearchResult, Error.<FilesSearchError>>} */ routes.filesSearch = function (arg) { return this.request('files/search', arg, 'user', 'api', 'rpc'); }; /** * 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 * upload_session/start. Calls to this endpoint will count as data transport * calls for any Dropbox Business teams with a limit on the number of data * transport calls allowed per month. For more information, see the Data * transport limit page * https://www.dropbox.com/developers/reference/data-transport-limit. * @function Dropbox#filesUpload * @arg {FilesCommitInfo} arg - The request parameters. * @returns {Promise.<FilesFileMetadata, Error.<FilesUploadError>>} */ routes.filesUpload = function (arg) { return this.request('files/upload', arg, 'user', 'content', 'upload'); }; /** * 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. The maximum size of a file one can upload to an upload session is 350 GB. * Calls to this endpoint will count as data transport calls for any Dropbox * Business teams with a limit on the number of data transport calls allowed per * month. For more information, see the Data transport limit page * https://www.dropbox.com/developers/reference/data-transport-limit. * @function Dropbox#filesUploadSessionAppendV2 * @arg {FilesUploadSessionAppendArg} arg - The request parameters. * @returns {Promise.<void, Error.<FilesUploadSessionLookupError>>} */ routes.filesUploadSessionAppendV2 = function (arg) { return this.request('files/upload_session/append_v2', arg, 'user', 'content', 'upload'); }; /** * Append more data to an upload session. A single request should not upload * more than 150 MB. The maximum size of a file one can upload to an upload * session is 350 GB. Calls to this endpoint will count as data transport calls * for any Dropbox Business teams with a limit on the number of data transport * calls allowed per month. For more information, see the Data transport limit * page https://www.dropbox.com/developers/reference/data-transport-limit. * @function Dropbox#filesUploadSessionAppend * @deprecated * @arg {FilesUploadSessionCursor} arg - The request parameters. * @returns {Promise.<void, Error.<FilesUploadSessionLookupError>>} */ routes.filesUploadSessionAppend = function (arg) { return this.request('files/upload_session/append', arg, 'user', 'content', 'upload'); }; /** * Finish an upload session and save the uploaded data to the given file path. A * single request should not upload more than 150 MB. The maximum size of a file * one can upload to an upload session is 350 GB. Calls to this endpoint will * count as data transport calls for any Dropbox Business teams with a limit on * the number of data transport calls allowed per month. For more information, * see the Data transport limit page * https://www.dropbox.com/developers/reference/data-transport-limit. * @function Dropbox#filesUploadSessionFinish * @arg {FilesUploadSessionFinishArg} arg - The request parameters. * @returns {Promise.<FilesFileMetadata, Error.<FilesUploadSessionFinishError>>} */ routes.filesUploadSessionFinish = function (arg) { return this.request('files/upload_session/finish', arg, 'user', 'content', 'upload'); }; /** * This route helps you commit many files at once into a user's Dropbox. Use * upload_session/start and upload_session/append_v2 to upload file contents. We * recommend uploading many files in parallel to increase throughput. Once the * file contents have been uploaded, rather than calling upload_session/finish, * use this route to finish all your upload sessions in a single request. * UploadSessionStartArg.close or UploadSessionAppendArg.close needs to be true * for the last upload_session/start or upload_session/append_v2 call. The * maximum size of a file one can upload to an upload session is 350 GB. This * route will return a job_id immediately and do the async commit job in * background. Use upload_session/finish_batch/check 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. Calls to this endpoint will count as data * transport calls for any Dropbox Business teams with a limit on the number of * data transport calls allowed per month. For more information, see the Data * transport limit page * https://www.dropbox.com/developers/reference/data-transport-limit. * @function Dropbox#filesUploadSessionFinishBatch * @arg {FilesUploadSessionFinishBatchArg} arg - The request parameters. * @returns {Promise.<FilesUploadSessionFinishBatchLaunch, Error.<void>>} */ routes.filesUploadSessionFinishBatch = function (arg) { return this.request('files/upload_session/finish_batch', arg, 'user', 'api', 'rpc'); }; /** * Returns the status of an asynchronous job for upload_session/finish_batch. If * success, it returns list of result for each entry. * @function Dropbox#filesUploadSessionFinishBatchCheck * @arg {AsyncPollArg} arg - The request parameters. * @returns {Promise.<FilesUploadSessionFinishBatchJobStatus, Error.<AsyncPollError>>} */ routes.filesUploadSessionFinishBatchCheck = function (arg) { return this.request('files/upload_session/finish_batch/check', arg, 'user', 'api', 'rpc'); }; /** * 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 * upload_session/append_v2 to add more data and upload_session/finish to save * all the data to a file in Dropbox. A single request should not upload more * than 150 MB. The maximum size of a file one can upload to an upload session * is 350 GB. An upload session can be used for a maximum of 48 hours. * Attempting to use an UploadSessionStartResult.session_id with * upload_session/append_v2 or upload_session/finish more than 48 hours after * its creation will return a UploadSessionLookupError.not_found. Calls to this * endpoint will count as data transport calls for any Dropbox Business teams * with a limit on the number of data transport calls allowed per month. For * more information, see the Data transport limit page * https://www.dropbox.com/developers/reference/data-transport-limit. * @function Dropbox#filesUploadSessionStart * @arg {FilesUploadSessionStartArg} arg - The request parameters. * @returns {Promise.<FilesUploadSessionStartResult, Error.<void>>} */ routes.filesUploadSessionStart = function (arg) { return this.request('files/upload_session/start', arg, 'user', 'content', 'upload'); }; /** * Marks the given Paper doc as archived. Note: This action can be performed or * undone by anyone with edit permissions to the doc. * @function Dropbox#paperDocsArchive * @arg {PaperRefPaperDoc} arg - The request parameters. * @returns {Promise.<void, Error.<PaperDocLookupError>>} */ routes.paperDocsArchive = function (arg) { return this.request('paper/docs/archive', arg, 'user', 'api', 'rpc'); }; /** * Creates a new Paper doc with the provided content. * @function Dropbox#paperDocsCreate * @arg {PaperPaperDocCreateArgs} arg - The request parameters. * @returns {Promise.<PaperPaperDocCreateUpdateResult, Error.<PaperPaperDocCreateError>>} */ routes.paperDocsCreate = function (arg) { return this.request('paper/docs/create', arg, 'user', 'api', 'upload'); }; /** * Exports and downloads Paper doc either as HTML or markdown. * @function Dropbox#paperDocsDownload * @arg {PaperPaperDocExport} arg - The request parameters. * @returns {Promise.<PaperPaperDocExportResult, Error.<PaperDocLookupError>>} */ routes.paperDocsDownload = function (arg) { return this.request('paper/docs/download', arg, 'user', 'api', 'download'); }; /** * Lists the users who are explicitly invited to the Paper folder in which the * Paper doc is contained. For private folders all users (including owner) * shared on the folder are listed and for team folders all non-team users * shared on the folder are returned. * @function Dropbox#paperDocsFolderUsersList * @arg {PaperListUsersOnFolderArgs} arg - The request parameters. * @returns {Promise.<PaperListUsersOnFolderResponse, Error.<PaperDocLookupError>>} */ routes.paperDocsFolderUsersList = function (arg) { return this.request('paper/docs/folder_users/list', arg, 'user', 'api', 'rpc'); }; /** * Once a cursor has been retrieved from docs/folder_users/list, use this to * paginate through all users on the Paper folder. * @function Dropbox#paperDocsFolderUsersListContinue * @arg {PaperListUsersOnFolderContinueArgs} arg - The request parameters. * @returns {Promise.<PaperListUsersOnFolderResponse, Error.<PaperListUsersCursorError>>} */ routes.paperDocsFolderUsersListContinue = function (arg) { return this.request('paper/docs/folder_users/list/continue', arg, 'user', 'api', 'rpc'); }; /** * Retrieves folder information for the given Paper doc. This includes: - * folder sharing policy; permissions for subfolders are set by the top-level * folder. - full 'filepath', i.e. the list of folders (both folderId and * folderName) from the root folder to the folder directly containing the * Paper doc. Note: If the Paper doc is not in any folder (aka unfiled) the * response will be empty. * @function Dropbox#paperDocsGetFolderInfo * @arg {PaperRefPaperDoc} arg - The request parameters. * @returns {Promise.<PaperFoldersContainingPaperDoc, Error.<PaperDocLookupError>>} */ routes.paperDocsGetFolderInfo = function (arg) { return this.request('paper/docs/get_folder_info', arg, 'user', 'api', 'rpc'); }; /** * Return the list of all Paper docs according to the argument specifications. * To iterate ove