summaryrefslogtreecommitdiffstats
path: root/comm/mail/components/extensions/schemas/folders.json
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mail/components/extensions/schemas/folders.json')
-rw-r--r--comm/mail/components/extensions/schemas/folders.json408
1 files changed, 408 insertions, 0 deletions
diff --git a/comm/mail/components/extensions/schemas/folders.json b/comm/mail/components/extensions/schemas/folders.json
new file mode 100644
index 0000000000..307cbcf789
--- /dev/null
+++ b/comm/mail/components/extensions/schemas/folders.json
@@ -0,0 +1,408 @@
+[
+ {
+ "namespace": "manifest",
+ "types": [
+ {
+ "$extend": "OptionalPermission",
+ "choices": [
+ {
+ "type": "string",
+ "enum": ["accountsFolders"]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "namespace": "folders",
+ "permissions": ["accountsRead"],
+ "types": [
+ {
+ "id": "MailFolder",
+ "type": "object",
+ "description": "An object describing a mail folder, as returned for example by the :ref:`folders.getParentFolders` or :ref:`folders.getSubFolders` methods, or part of a :ref:`accounts.MailAccount` object, which is returned for example by the :ref:`accounts.list` and :ref:`accounts.get` methods. The ``subFolders`` property is only included if requested.",
+ "properties": {
+ "accountId": {
+ "type": "string",
+ "description": "The account this folder belongs to."
+ },
+ "name": {
+ "type": "string",
+ "optional": true,
+ "description": "The human-friendly name of this folder."
+ },
+ "path": {
+ "type": "string",
+ "description": "Path to this folder in the account. Although paths look predictable, never guess a folder's path, as there are a number of reasons why it may not be what you think it is. Use :ref:`folders.getParentFolders` or :ref:`folders.getSubFolders` to obtain hierarchy information."
+ },
+ "subFolders": {
+ "type": "array",
+ "description": "Subfolders are only included if requested. They will be returned in the same order as used in Thunderbird's folder pane.",
+ "items": {
+ "$ref": "MailFolder"
+ },
+ "optional": true
+ },
+ "type": {
+ "type": "string",
+ "optional": true,
+ "description": "The type of folder, for several common types.",
+ "enum": [
+ "inbox",
+ "drafts",
+ "sent",
+ "trash",
+ "templates",
+ "archives",
+ "junk",
+ "outbox"
+ ]
+ }
+ }
+ },
+ {
+ "id": "MailFolderInfo",
+ "type": "object",
+ "description": "An object containing additional information about a mail folder.",
+ "properties": {
+ "favorite": {
+ "type": "boolean",
+ "optional": true,
+ "description": "Whether this folder is a favorite folder."
+ },
+ "totalMessageCount": {
+ "type": "integer",
+ "optional": true,
+ "description": "Number of messages in this folder."
+ },
+ "unreadMessageCount": {
+ "type": "integer",
+ "optional": true,
+ "description": "Number of unread messages in this folder."
+ }
+ }
+ }
+ ],
+ "functions": [
+ {
+ "name": "create",
+ "type": "function",
+ "permissions": ["accountsFolders"],
+ "description": "Creates a new subfolder in the specified folder or at the root of the specified account.",
+ "async": "callback",
+ "parameters": [
+ {
+ "name": "parent",
+ "choices": [
+ {
+ "$ref": "folders.MailFolder"
+ },
+ {
+ "$ref": "accounts.MailAccount"
+ }
+ ]
+ },
+ {
+ "name": "childName",
+ "type": "string"
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "optional": true,
+ "parameters": [
+ {
+ "$ref": "folders.MailFolder"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "rename",
+ "type": "function",
+ "permissions": ["accountsFolders"],
+ "description": "Renames a folder.",
+ "async": "callback",
+ "parameters": [
+ {
+ "name": "folder",
+ "$ref": "folders.MailFolder"
+ },
+ {
+ "name": "newName",
+ "type": "string"
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "optional": true,
+ "parameters": [
+ {
+ "$ref": "folders.MailFolder"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "move",
+ "type": "function",
+ "permissions": ["accountsFolders"],
+ "description": "Moves the given ``sourceFolder`` into the given ``destination``. Throws if the destination already contains a folder with the name of the source folder.",
+ "async": "callback",
+ "parameters": [
+ {
+ "name": "sourceFolder",
+ "$ref": "folders.MailFolder"
+ },
+ {
+ "name": "destination",
+ "choices": [
+ {
+ "$ref": "folders.MailFolder"
+ },
+ {
+ "$ref": "accounts.MailAccount"
+ }
+ ]
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "optional": true,
+ "parameters": [
+ {
+ "$ref": "folders.MailFolder"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "copy",
+ "type": "function",
+ "permissions": ["accountsFolders"],
+ "description": "Copies the given ``sourceFolder`` into the given ``destination``. Throws if the destination already contains a folder with the name of the source folder.",
+ "async": "callback",
+ "parameters": [
+ {
+ "name": "sourceFolder",
+ "$ref": "folders.MailFolder"
+ },
+ {
+ "name": "destination",
+ "choices": [
+ {
+ "$ref": "folders.MailFolder"
+ },
+ {
+ "$ref": "accounts.MailAccount"
+ }
+ ]
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "optional": true,
+ "parameters": [
+ {
+ "$ref": "folders.MailFolder"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "delete",
+ "permissions": ["accountsFolders", "messagesDelete"],
+ "type": "function",
+ "description": "Deletes a folder.",
+ "async": true,
+ "parameters": [
+ {
+ "name": "folder",
+ "$ref": "folders.MailFolder"
+ }
+ ]
+ },
+ {
+ "name": "getFolderInfo",
+ "type": "function",
+ "description": "Get additional information about a mail folder.",
+ "async": "callback",
+ "parameters": [
+ {
+ "name": "folder",
+ "$ref": "folders.MailFolder"
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "optional": true,
+ "parameters": [
+ {
+ "$ref": "folders.MailFolderInfo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "getParentFolders",
+ "type": "function",
+ "description": "Get all parent folders as a flat ordered array. The first array entry is the direct parent.",
+ "async": "callback",
+ "parameters": [
+ {
+ "name": "folder",
+ "$ref": "folders.MailFolder"
+ },
+ {
+ "name": "includeSubFolders",
+ "description": "Specifies whether the returned :ref:`folders.MailFolder` object for each parent folder should include its nested subfolders . Defaults to <value>false</value>.",
+ "optional": true,
+ "default": false,
+ "type": "boolean"
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "optional": true,
+ "parameters": [
+ {
+ "type": "array",
+ "items": {
+ "$ref": "folders.MailFolder"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "getSubFolders",
+ "type": "function",
+ "description": "Get the subfolders of the specified folder or account.",
+ "async": "callback",
+ "parameters": [
+ {
+ "name": "folderOrAccount",
+ "choices": [
+ {
+ "$ref": "folders.MailFolder"
+ },
+ {
+ "$ref": "accounts.MailAccount"
+ }
+ ]
+ },
+ {
+ "name": "includeSubFolders",
+ "description": "Specifies whether the returned :ref:`folders.MailFolder` object for each direct subfolder should also include all its nested subfolders . Defaults to <value>true</value>.",
+ "optional": true,
+ "default": true,
+ "type": "boolean"
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "optional": true,
+ "parameters": [
+ {
+ "type": "array",
+ "items": {
+ "$ref": "folders.MailFolder"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "events": [
+ {
+ "name": "onCreated",
+ "type": "function",
+ "description": "Fired when a folder has been created.",
+ "parameters": [
+ {
+ "name": "createdFolder",
+ "$ref": "folders.MailFolder"
+ }
+ ]
+ },
+ {
+ "name": "onRenamed",
+ "type": "function",
+ "description": "Fired when a folder has been renamed.",
+ "parameters": [
+ {
+ "name": "originalFolder",
+ "$ref": "folders.MailFolder"
+ },
+ {
+ "name": "renamedFolder",
+ "$ref": "folders.MailFolder"
+ }
+ ]
+ },
+ {
+ "name": "onMoved",
+ "type": "function",
+ "description": "Fired when a folder has been moved.",
+ "parameters": [
+ {
+ "name": "originalFolder",
+ "$ref": "folders.MailFolder"
+ },
+ {
+ "name": "movedFolder",
+ "$ref": "folders.MailFolder"
+ }
+ ]
+ },
+ {
+ "name": "onCopied",
+ "type": "function",
+ "description": "Fired when a folder has been copied.",
+ "parameters": [
+ {
+ "name": "originalFolder",
+ "$ref": "folders.MailFolder"
+ },
+ {
+ "name": "copiedFolder",
+ "$ref": "folders.MailFolder"
+ }
+ ]
+ },
+ {
+ "name": "onDeleted",
+ "type": "function",
+ "description": "Fired when a folder has been deleted.",
+ "parameters": [
+ {
+ "name": "deletedFolder",
+ "$ref": "folders.MailFolder"
+ }
+ ]
+ },
+ {
+ "name": "onFolderInfoChanged",
+ "type": "function",
+ "description": "Fired when certain information of a folder have changed. Bursts of message count changes are collapsed to a single event.",
+ "parameters": [
+ {
+ "name": "folder",
+ "$ref": "folders.MailFolder"
+ },
+ {
+ "name": "folderInfo",
+ "$ref": "folders.MailFolderInfo"
+ }
+ ]
+ }
+ ]
+ }
+]