[ { "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 false.", "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 true.", "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" } ] } ] } ]