diff options
Diffstat (limited to 'comm/mail/components/extensions/schemas/cloudFile.json')
-rw-r--r-- | comm/mail/components/extensions/schemas/cloudFile.json | 501 |
1 files changed, 501 insertions, 0 deletions
diff --git a/comm/mail/components/extensions/schemas/cloudFile.json b/comm/mail/components/extensions/schemas/cloudFile.json new file mode 100644 index 0000000000..41c587881d --- /dev/null +++ b/comm/mail/components/extensions/schemas/cloudFile.json @@ -0,0 +1,501 @@ +[ + { + "namespace": "manifest", + "types": [ + { + "$extend": "WebExtensionManifest", + "properties": { + "cloud_file": { + "type": "object", + "additionalProperties": { + "$ref": "UnrecognizedProperty" + }, + "properties": { + "browser_style": { + "type": "boolean", + "description": "Enable browser styles in the ``management_url`` page. See the `MDN documentation on browser styles <|link-mdn-browser-styles|>`__ for more information.", + "optional": true, + "default": false + }, + "data_format": { + "type": "string", + "optional": true, + "deprecated": true, + "description": "This property is no longer used. The only supported data format for the ``data`` argument in :ref:`cloudFile.onFileUpload` is |File|." + }, + "reuse_uploads": { + "description": "If a previously uploaded cloud file attachment is reused at a later time in a different message, Thunderbird may use the already known ``url`` and ``templateInfo`` values without triggering the registered :ref:`cloudFile.onFileUpload` listener again. Setting this option to <value>false</value> will always trigger the registered listener, providing the already known values through the ``relatedFileInfo`` parameter of the :ref:`cloudFile.onFileUpload` event, to let the provider decide how to handle these cases.", + "type": "boolean", + "optional": true, + "default": true + }, + "management_url": { + "type": "string", + "format": "relativeUrl", + "preprocess": "localize", + "description": "A page for configuring accounts, to be displayed in the preferences UI. **Note:** Within this UI only a limited subset of the WebExtension APIs is available: ``cloudFile``, ``extension``, ``i18n``, ``runtime``, ``storage``, ``test``." + }, + "name": { + "type": "string", + "preprocess": "localize", + "description": "Name of the cloud file service." + }, + "new_account_url": { + "type": "string", + "optional": true, + "deprecated": true, + "description": "This property was never used." + }, + "service_url": { + "type": "string", + "optional": true, + "deprecated": true, + "description": "This property is no longer used. The ``service_url`` property of the :ref:`cloudFile.CloudFileTemplateInfo` object returned by the :ref:`cloudFile.onFileUpload` event can be used to add a <em>Learn more about</em> link to the footer of the cloud file attachment element." + } + }, + "optional": true + } + } + } + ] + }, + { + "namespace": "cloudFile", + "permissions": ["manifest:cloud_file"], + "allowedContexts": ["content"], + "events": [ + { + "name": "onFileUpload", + "type": "function", + "description": "Fired when a file should be uploaded to the cloud file provider.", + "parameters": [ + { + "name": "account", + "$ref": "CloudFileAccount", + "description": "The account used for the file upload." + }, + { + "name": "fileInfo", + "$ref": "CloudFile", + "description": "The file to upload." + }, + { + "name": "tab", + "$ref": "tabs.Tab", + "description": "The tab where the upload was initiated. Currently only available for the message composer." + }, + { + "$ref": "RelatedCloudFile", + "name": "relatedFileInfo", + "optional": true, + "description": "Information about an already uploaded file, which is related to this upload." + } + ], + "returns": { + "type": "object", + "properties": { + "aborted": { + "type": "boolean", + "description": "Set this to <value>true</value> if the file upload was aborted by the user and an :ref:`cloudFile.onFileUploadAbort` event has been received. No error message will be shown to the user.", + "optional": true + }, + "error": { + "choices": [ + { + "type": "boolean" + }, + { + "type": "string" + } + ], + "description": "Report an error to the user. Set this to <value>true</value> for showing a generic error message, or set a specific error message.", + "optional": true + }, + "url": { + "type": "string", + "description": "The URL where the uploaded file can be accessed.", + "optional": true + }, + "templateInfo": { + "$ref": "CloudFileTemplateInfo", + "description": "Additional file information used in the cloud file entry added to the message.", + "optional": true + } + } + } + }, + { + "name": "onFileUploadAbort", + "type": "function", + "parameters": [ + { + "name": "account", + "$ref": "CloudFileAccount", + "description": "The account used for the file upload." + }, + { + "type": "integer", + "name": "fileId", + "minimum": 1, + "description": "An identifier for this file." + }, + { + "name": "tab", + "$ref": "tabs.Tab", + "description": "The tab where the upload was initiated. Currently only available for the message composer." + } + ] + }, + { + "name": "onFileRename", + "type": "function", + "description": "Fired when a previously uploaded file should be renamed.", + "parameters": [ + { + "name": "account", + "$ref": "CloudFileAccount", + "description": "The account used for the file upload." + }, + { + "type": "integer", + "name": "fileId", + "minimum": 1, + "description": "An identifier for the file which should be renamed." + }, + { + "type": "string", + "name": "newName", + "description": "The new name of the file." + }, + { + "name": "tab", + "$ref": "tabs.Tab", + "description": "The tab where the rename was initiated. Currently only available for the message composer." + } + ], + "returns": { + "type": "object", + "properties": { + "error": { + "choices": [ + { + "type": "boolean" + }, + { + "type": "string" + } + ], + "description": "Report an error to the user. Set this to <value>true</value> for showing a generic error message, or set a specific error message.", + "optional": true + }, + "url": { + "type": "string", + "description": "The URL where the renamed file can be accessed.", + "optional": true + } + } + } + }, + { + "name": "onFileDeleted", + "type": "function", + "description": "Fired when a previously uploaded file should be deleted.", + "parameters": [ + { + "name": "account", + "$ref": "CloudFileAccount", + "description": "The account used for the file upload." + }, + { + "type": "integer", + "name": "fileId", + "minimum": 1, + "description": "An identifier for this file." + }, + { + "name": "tab", + "$ref": "tabs.Tab", + "description": "The tab where the upload was initiated. Currently only available for the message composer." + } + ] + }, + { + "name": "onAccountAdded", + "type": "function", + "description": "Fired when a cloud file account of this add-on was created.", + "parameters": [ + { + "name": "account", + "$ref": "CloudFileAccount", + "description": "The created account." + } + ] + }, + { + "name": "onAccountDeleted", + "type": "function", + "description": "Fired when a cloud file account of this add-on was deleted.", + "parameters": [ + { + "name": "accountId", + "type": "string", + "description": "The id of the removed account." + } + ] + } + ], + "types": [ + { + "id": "CloudFileAccount", + "type": "object", + "description": "Information about a cloud file account.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the account." + }, + "configured": { + "type": "boolean", + "description": "If true, the account is configured and ready to use. Only configured accounts are offered to the user." + }, + "name": { + "type": "string", + "description": "A user-friendly name for this account." + }, + "uploadSizeLimit": { + "type": "integer", + "minimum": -1, + "optional": true, + "description": "The maximum size in bytes for a single file to upload. Set to <value>-1</value> if unlimited." + }, + "spaceRemaining": { + "type": "integer", + "minimum": -1, + "optional": true, + "description": "The amount of remaining space on the cloud provider, in bytes. Set to <value>-1</value> if unsupported." + }, + "spaceUsed": { + "type": "integer", + "minimum": -1, + "optional": true, + "description": "The amount of space already used on the cloud provider, in bytes. Set to <value>-1</value> if unsupported." + }, + "managementUrl": { + "type": "string", + "format": "relativeUrl", + "description": "A page for configuring accounts, to be displayed in the preferences UI." + } + } + }, + { + "id": "CloudFileTemplateInfo", + "type": "object", + "description": "Defines information to be used in the cloud file entry added to the message.", + "properties": { + "service_icon": { + "type": "string", + "optional": true, + "description": "A URL pointing to an icon to represent the used cloud file service. Defaults to the icon of the provider add-on." + }, + "service_name": { + "type": "string", + "optional": true, + "description": "A name to represent the used cloud file service. Defaults to the associated cloud file account name." + }, + "service_url": { + "type": "string", + "optional": true, + "description": "A URL pointing to a web page of the used cloud file service. Will be used in a <em>Learn more about</em> link in the footer of the cloud file attachment element." + }, + "download_password_protected": { + "type": "boolean", + "optional": true, + "description": "If set to true, the cloud file entry for this upload will include a hint, that the download link is password protected." + }, + "download_limit": { + "type": "integer", + "optional": true, + "description": "If set, the cloud file entry for this upload will include a hint, that the file has a download limit." + }, + "download_expiry_date": { + "type": "object", + "optional": true, + "description": "If set, the cloud file entry for this upload will include a hint, that the link will only be available for a limited time.", + "properties": { + "timestamp": { + "type": "integer", + "description": "The expiry date of the link as the number of milliseconds since the UNIX epoch." + }, + "format": { + "optional": true, + "description": "A format options object as used by |DateTimeFormat|. Defaults to: <literalinclude>includes/cloudFile/defaultDateFormat.js<lang>JavaScript</lang></literalinclude>", + "type": "object", + "additionalProperties": true + } + } + } + } + }, + { + "id": "CloudFile", + "type": "object", + "description": "Information about a cloud file.", + "properties": { + "id": { + "type": "integer", + "minimum": 1, + "description": "An identifier for this file." + }, + "name": { + "type": "string", + "description": "Filename of the file to be transferred." + }, + "data": { + "type": "object", + "isInstanceOf": "File", + "additionalProperties": true, + "description": "Contents of the file to be transferred." + } + } + }, + { + "id": "RelatedCloudFile", + "type": "object", + "description": "Information about an already uploaded cloud file, which is related to a new upload. For example if the content of a cloud attachment is updated, if a repeatedly used cloud attachment is renamed (and therefore should be re-uploaded to not invalidate existing links) or if the provider has its manifest property ``reuse_uploads`` set to <value>false</value>.", + "properties": { + "id": { + "type": "integer", + "minimum": 1, + "optional": true, + "description": "The identifier for the related file. In some circumstances, the id is unavailable." + }, + "url": { + "type": "string", + "description": "The URL where the upload of the related file can be accessed.", + "optional": true + }, + "templateInfo": { + "$ref": "CloudFileTemplateInfo", + "description": "Additional information of the related file, used in the cloud file entry added to the message.", + "optional": true + }, + "name": { + "type": "string", + "description": "Filename of the related file." + }, + "dataChanged": { + "type": "boolean", + "description": "The content of the new upload differs from the related file." + } + } + } + ], + "functions": [ + { + "name": "getAccount", + "type": "function", + "description": "Retrieve information about a single cloud file account.", + "allowedContexts": ["content"], + "async": "callback", + "parameters": [ + { + "name": "accountId", + "type": "string", + "description": "Unique identifier of the account." + }, + { + "type": "function", + "name": "callback", + "optional": true, + "parameters": [ + { + "$ref": "CloudFileAccount" + } + ] + } + ] + }, + { + "name": "getAllAccounts", + "type": "function", + "description": "Retrieve all cloud file accounts for the current add-on.", + "allowedContexts": ["content"], + "async": "callback", + "parameters": [ + { + "type": "function", + "name": "callback", + "optional": true, + "parameters": [ + { + "type": "array", + "items": { + "$ref": "CloudFileAccount" + } + } + ] + } + ] + }, + { + "name": "updateAccount", + "type": "function", + "description": "Update a cloud file account.", + "allowedContexts": ["content"], + "async": "callback", + "parameters": [ + { + "name": "accountId", + "type": "string", + "description": "Unique identifier of the account." + }, + { + "name": "updateProperties", + "type": "object", + "properties": { + "configured": { + "type": "boolean", + "optional": true, + "description": "If true, the account is configured and ready to use. Only configured accounts are offered to the user." + }, + "uploadSizeLimit": { + "type": "integer", + "minimum": -1, + "optional": true, + "description": "The maximum size in bytes for a single file to upload. Set to <value>-1</value> if unlimited." + }, + "spaceRemaining": { + "type": "integer", + "minimum": -1, + "optional": true, + "description": "The amount of remaining space on the cloud provider, in bytes. Set to <value>-1</value> if unsupported." + }, + "spaceUsed": { + "type": "integer", + "minimum": -1, + "optional": true, + "description": "The amount of space already used on the cloud provider, in bytes. Set to <value>-1</value> if unsupported." + }, + "managementUrl": { + "type": "string", + "format": "relativeUrl", + "optional": true, + "description": "A page for configuring accounts, to be displayed in the preferences UI." + } + } + }, + { + "type": "function", + "name": "callback", + "optional": true, + "parameters": [ + { + "$ref": "CloudFileAccount" + } + ] + } + ] + } + ] + } +] |