diff --git a/app/config/errors.php b/app/config/errors.php index 9d30170c2d..644a0c75b3 100644 --- a/app/config/errors.php +++ b/app/config/errors.php @@ -499,6 +499,11 @@ return [ 'description' => 'The requested file token has expired.', 'code' => 401, ], + Exception::TOKEN_RESOURCE_TYPE_INVALID => [ + 'name' => Exception::TOKEN_RESOURCE_TYPE_INVALID, + 'description' => 'The resource type for the token is invalid.', + 'code' => 400, + ], /** VCS */ Exception::INSTALLATION_NOT_FOUND => [ diff --git a/app/config/specs/open-api3-latest-client.json b/app/config/specs/open-api3-latest-client.json index ed31be27a5..80aa4cf420 100644 --- a/app/config/specs/open-api3-latest-client.json +++ b/app/config/specs/open-api3-latest-client.json @@ -2646,7 +2646,10 @@ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-token-email.md", "rate-limit": 10, "rate-time": 3600, - "rate-key": "url:{url},email:{param-email}", + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], "scope": "sessions.write", "platforms": [ "server", @@ -4427,7 +4430,7 @@ "tags": [ "databases" ], - "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.\n", + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", "responses": { "201": { "description": "Document", @@ -4459,6 +4462,51 @@ "server" ], "packaging": false, + "methods": [ + { + "name": "createDocument", + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console." + }, + { + "name": "createDocuments", + "parameters": [ + "databaseId", + "collectionId", + "documents" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console." + } + ], "auth": { "Project": [] } @@ -4515,12 +4563,16 @@ "items": { "type": "string" } + }, + "documents": { + "type": "array", + "description": "Array of documents data as JSON objects.", + "x-example": null, + "items": { + "type": "object" + } } - }, - "required": [ - "documentId", - "data" - ] + } } } } @@ -4744,7 +4796,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 114, + "weight": 116, "cookies": false, "type": "", "deprecated": false, @@ -4828,7 +4880,7 @@ "x-appwrite": { "method": "listExecutions", "group": "executions", - "weight": 388, + "weight": 391, "cookies": false, "type": "", "deprecated": false, @@ -4903,7 +4955,7 @@ "x-appwrite": { "method": "createExecution", "group": "executions", - "weight": 386, + "weight": 389, "cookies": false, "type": "", "deprecated": false, @@ -5018,7 +5070,7 @@ "x-appwrite": { "method": "getExecution", "group": "executions", - "weight": 387, + "weight": 390, "cookies": false, "type": "", "deprecated": false, @@ -5092,7 +5144,7 @@ "x-appwrite": { "method": "query", "group": "graphql", - "weight": 302, + "weight": 305, "cookies": false, "type": "graphql", "deprecated": false, @@ -5144,7 +5196,7 @@ "x-appwrite": { "method": "mutation", "group": "graphql", - "weight": 301, + "weight": 304, "cookies": false, "type": "graphql", "deprecated": false, @@ -5196,7 +5248,7 @@ "x-appwrite": { "method": "get", "group": null, - "weight": 118, + "weight": 121, "cookies": false, "type": "", "deprecated": false, @@ -5248,7 +5300,7 @@ "x-appwrite": { "method": "listCodes", "group": null, - "weight": 119, + "weight": 122, "cookies": false, "type": "", "deprecated": false, @@ -5300,7 +5352,7 @@ "x-appwrite": { "method": "listContinents", "group": null, - "weight": 123, + "weight": 126, "cookies": false, "type": "", "deprecated": false, @@ -5352,7 +5404,7 @@ "x-appwrite": { "method": "listCountries", "group": null, - "weight": 120, + "weight": 123, "cookies": false, "type": "", "deprecated": false, @@ -5404,7 +5456,7 @@ "x-appwrite": { "method": "listCountriesEU", "group": null, - "weight": 121, + "weight": 124, "cookies": false, "type": "", "deprecated": false, @@ -5456,7 +5508,7 @@ "x-appwrite": { "method": "listCountriesPhones", "group": null, - "weight": 122, + "weight": 125, "cookies": false, "type": "", "deprecated": false, @@ -5508,7 +5560,7 @@ "x-appwrite": { "method": "listCurrencies", "group": null, - "weight": 124, + "weight": 127, "cookies": false, "type": "", "deprecated": false, @@ -5560,7 +5612,7 @@ "x-appwrite": { "method": "listLanguages", "group": null, - "weight": 125, + "weight": 128, "cookies": false, "type": "", "deprecated": false, @@ -5612,7 +5664,7 @@ "x-appwrite": { "method": "createSubscriber", "group": "subscribers", - "weight": 348, + "weight": 351, "cookies": false, "type": "", "deprecated": false, @@ -5695,7 +5747,7 @@ "x-appwrite": { "method": "deleteSubscriber", "group": "subscribers", - "weight": 352, + "weight": 355, "cookies": false, "type": "", "deprecated": false, @@ -5770,7 +5822,7 @@ "x-appwrite": { "method": "listFiles", "group": "files", - "weight": 208, + "weight": 211, "cookies": false, "type": "", "deprecated": false, @@ -5856,7 +5908,7 @@ "x-appwrite": { "method": "createFile", "group": "files", - "weight": 207, + "weight": 210, "cookies": false, "type": "upload", "deprecated": false, @@ -5954,7 +6006,7 @@ "x-appwrite": { "method": "getFile", "group": "files", - "weight": 209, + "weight": 212, "cookies": false, "type": "", "deprecated": false, @@ -6026,7 +6078,7 @@ "x-appwrite": { "method": "updateFile", "group": "files", - "weight": 214, + "weight": 217, "cookies": false, "type": "", "deprecated": false, @@ -6115,7 +6167,7 @@ "x-appwrite": { "method": "deleteFile", "group": "files", - "weight": 215, + "weight": 218, "cookies": false, "type": "", "deprecated": false, @@ -6182,7 +6234,7 @@ "x-appwrite": { "method": "getFileDownload", "group": "files", - "weight": 211, + "weight": 214, "cookies": false, "type": "location", "deprecated": false, @@ -6229,6 +6281,17 @@ "x-example": "" }, "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "x-example": "", + "default": "" + }, + "in": "query" } ] } @@ -6249,7 +6312,7 @@ "x-appwrite": { "method": "getFilePreview", "group": "files", - "weight": 210, + "weight": 213, "cookies": false, "type": "location", "deprecated": false, @@ -6446,6 +6509,17 @@ "default": "" }, "in": "query" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "x-example": "", + "default": "" + }, + "in": "query" } ] } @@ -6466,7 +6540,7 @@ "x-appwrite": { "method": "getFileView", "group": "files", - "weight": 212, + "weight": 215, "cookies": false, "type": "location", "deprecated": false, @@ -6513,6 +6587,17 @@ "x-example": "" }, "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "x-example": "", + "default": "" + }, + "in": "query" } ] } @@ -6540,7 +6625,7 @@ "x-appwrite": { "method": "list", "group": "teams", - "weight": 219, + "weight": 222, "cookies": false, "type": "", "deprecated": false, @@ -6616,7 +6701,7 @@ "x-appwrite": { "method": "create", "group": "teams", - "weight": 218, + "weight": 221, "cookies": false, "type": "", "deprecated": false, @@ -6701,7 +6786,7 @@ "x-appwrite": { "method": "get", "group": "teams", - "weight": 220, + "weight": 223, "cookies": false, "type": "", "deprecated": false, @@ -6763,7 +6848,7 @@ "x-appwrite": { "method": "updateName", "group": "teams", - "weight": 222, + "weight": 225, "cookies": false, "type": "", "deprecated": false, @@ -6837,7 +6922,7 @@ "x-appwrite": { "method": "delete", "group": "teams", - "weight": 224, + "weight": 227, "cookies": false, "type": "", "deprecated": false, @@ -6901,7 +6986,7 @@ "x-appwrite": { "method": "listMemberships", "group": "memberships", - "weight": 226, + "weight": 229, "cookies": false, "type": "", "deprecated": false, @@ -6987,7 +7072,7 @@ "x-appwrite": { "method": "createMembership", "group": "memberships", - "weight": 225, + "weight": 228, "cookies": false, "type": "", "deprecated": false, @@ -7098,7 +7183,7 @@ "x-appwrite": { "method": "getMembership", "group": "memberships", - "weight": 227, + "weight": 230, "cookies": false, "type": "", "deprecated": false, @@ -7170,7 +7255,7 @@ "x-appwrite": { "method": "updateMembership", "group": "memberships", - "weight": 228, + "weight": 231, "cookies": false, "type": "", "deprecated": false, @@ -7257,7 +7342,7 @@ "x-appwrite": { "method": "deleteMembership", "group": "memberships", - "weight": 230, + "weight": 233, "cookies": false, "type": "", "deprecated": false, @@ -7331,7 +7416,7 @@ "x-appwrite": { "method": "updateMembershipStatus", "group": "memberships", - "weight": 229, + "weight": 232, "cookies": false, "type": "", "deprecated": false, @@ -7429,7 +7514,7 @@ "x-appwrite": { "method": "getPrefs", "group": "teams", - "weight": 221, + "weight": 224, "cookies": false, "type": "", "deprecated": false, @@ -7490,7 +7575,7 @@ "x-appwrite": { "method": "updatePrefs", "group": "teams", - "weight": 223, + "weight": 226, "cookies": false, "type": "", "deprecated": false, @@ -7572,7 +7657,7 @@ "x-appwrite": { "method": "list", "group": "files", - "weight": 436, + "weight": 438, "cookies": false, "type": "", "deprecated": false, @@ -7638,7 +7723,7 @@ "tags": [ "tokens" ], - "description": "Create a new token. A token is linked to a file or a bucket and manages permissions for those file(s). Token can be passed as a header or request get parameter.", + "description": "Create a new token. A token is linked to a file. Token can be passed as a header or request get parameter.", "responses": { "201": { "description": "ResourceToken", @@ -7654,12 +7739,12 @@ "x-appwrite": { "method": "createFileToken", "group": "files", - "weight": 433, + "weight": 436, "cookies": false, "type": "", "deprecated": false, "demo": "tokens\/create-file-token.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new token. A token is linked to a file or a bucket and manages permissions for those file(s). Token can be passed as a header or request get parameter.", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new token. A token is linked to a file. Token can be passed as a header or request get parameter.", "rate-limit": 60, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -7714,14 +7799,6 @@ "description": "Token expiry date", "x-example": null, "x-nullable": true - }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - } } } } @@ -7729,365 +7806,76 @@ } } } - }, - "\/tokens\/{tokenId}": { - "get": { - "summary": "Get token", - "operationId": "tokensGet", - "tags": [ - "tokens" - ], - "description": "Get a token by its unique ID.", - "responses": { - "200": { - "description": "ResourceToken", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/resourceToken" - } - } - } - } - }, - "x-appwrite": { - "method": "get", - "group": "tokens", - "weight": 434, - "cookies": false, - "type": "", - "deprecated": false, - "demo": "tokens\/get.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterGet a token by its unique ID.", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", - "platforms": [ - "client", - "server", - "server" - ], - "packaging": false, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "tokenId", - "description": "Token ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update token", - "operationId": "tokensUpdate", - "tags": [ - "tokens" - ], - "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date or permissions.", - "responses": { - "200": { - "description": "ResourceToken", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/resourceToken" - } - } - } - } - }, - "x-appwrite": { - "method": "update", - "group": "tokens", - "weight": 437, - "cookies": false, - "type": "", - "deprecated": false, - "demo": "tokens\/update.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterUpdate a token by its unique ID. Use this endpoint to update a token's expiry date or permissions.", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "tokens.write", - "platforms": [ - "client", - "server", - "server" - ], - "packaging": false, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "tokenId", - "description": "Token unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "expire": { - "type": "string", - "description": "File token expiry date", - "x-example": null, - "x-nullable": true - }, - "permissions": { - "type": "array", - "description": "An array of permission string. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - } - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete token", - "operationId": "tokensDelete", - "tags": [ - "tokens" - ], - "description": "Delete a token by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "x-appwrite": { - "method": "delete", - "group": "tokens", - "weight": 438, - "cookies": false, - "type": "", - "deprecated": false, - "demo": "tokens\/delete.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterDelete a token by its unique ID.", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "tokens.write", - "platforms": [ - "client", - "server", - "server" - ], - "packaging": false, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "tokenId", - "description": "Token ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } - ] - } - }, - "\/tokens\/{tokenId}\/jwt": { - "get": { - "summary": "Get token as JWT", - "operationId": "tokensGetJWT", - "tags": [ - "tokens" - ], - "description": "Get a JWT based token by its unique ID. You can use the JWT to authenticate on behalf of the user.", - "responses": { - "200": { - "description": "JWT", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/jwt" - } - } - } - } - }, - "x-appwrite": { - "method": "getJWT", - "group": "tokens", - "weight": 435, - "cookies": false, - "type": "", - "deprecated": false, - "demo": "tokens\/get-j-w-t.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterGet a JWT based token by its unique ID. You can use the JWT to authenticate on behalf of the user.", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", - "platforms": [ - "client", - "server", - "server" - ], - "packaging": false, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "tokenId", - "description": "File token ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } - ] - } } }, "tags": [ { "name": "account", - "description": "The Account service allows you to authenticate and manage a user account.", - "x-globalAttributes": [] + "description": "The Account service allows you to authenticate and manage a user account." }, { "name": "avatars", - "description": "The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars.", - "x-globalAttributes": [] + "description": "The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars." }, { "name": "databases", - "description": "The Databases service allows you to create structured collections of documents, query and filter lists of documents", - "x-globalAttributes": [ - "databaseId" - ] + "description": "The Databases service allows you to create structured collections of documents, query and filter lists of documents" }, { "name": "locale", - "description": "The Locale service allows you to customize your app based on your users' location.", - "x-globalAttributes": [] + "description": "The Locale service allows you to customize your app based on your users' location." }, { "name": "health", - "description": "The Health service allows you to both validate and monitor your Appwrite server's health.", - "x-globalAttributes": [] + "description": "The Health service allows you to both validate and monitor your Appwrite server's health." }, { "name": "projects", - "description": "The Project service allows you to manage all the projects in your Appwrite server.", - "x-globalAttributes": [] + "description": "The Project service allows you to manage all the projects in your Appwrite server." }, { "name": "project", - "description": "The Project service allows you to manage all the projects in your Appwrite server.", - "x-globalAttributes": [] + "description": "The Project service allows you to manage all the projects in your Appwrite server." }, { "name": "storage", - "description": "The Storage service allows you to manage your project files.", - "x-globalAttributes": [] + "description": "The Storage service allows you to manage your project files." }, { "name": "teams", - "description": "The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources", - "x-globalAttributes": [] + "description": "The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources" }, { "name": "users", - "description": "The Users service allows you to manage your project users.", - "x-globalAttributes": [] + "description": "The Users service allows you to manage your project users." }, { "name": "sites", - "description": "The Sites Service allows you view, create and manage your web applications.", - "x-globalAttributes": [] + "description": "The Sites Service allows you view, create and manage your web applications." }, { "name": "functions", - "description": "The Functions Service allows you view, create and manage your Cloud Functions.", - "x-globalAttributes": [] + "description": "The Functions Service allows you view, create and manage your Cloud Functions." }, { "name": "proxy", - "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration.", - "x-globalAttributes": [] + "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration." }, { "name": "graphql", - "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL.", - "x-globalAttributes": [] + "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL." }, { "name": "console", - "description": "The Console service allows you to interact with console relevant informations.", - "x-globalAttributes": [] + "description": "The Console service allows you to interact with console relevant informations." }, { "name": "migrations", - "description": "The Migrations service allows you to migrate third-party data to your Appwrite project.", - "x-globalAttributes": [] + "description": "The Migrations service allows you to migrate third-party data to your Appwrite project." }, { "name": "messaging", - "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.).", - "x-globalAttributes": [] + "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.)." } ], "components": { @@ -9483,16 +9271,6 @@ "description": "Token creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "$permissions": { - "type": "array", - "description": "Token permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "x-example": [ - "read(\"any\")" - ] - }, "resourceId": { "type": "string", "description": "Resource ID.", @@ -9508,6 +9286,11 @@ "description": "Token expiration date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, + "secret": { + "type": "string", + "description": "JWT encoded string.", + "x-example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + }, "accessedAt": { "type": "string", "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", @@ -9517,10 +9300,10 @@ "required": [ "$id", "$createdAt", - "$permissions", "resourceId", "resourceType", "expire", + "secret", "accessedAt" ] }, diff --git a/app/config/specs/open-api3-latest-console.json b/app/config/specs/open-api3-latest-console.json index 5354c2f9de..d9e216ed14 100644 --- a/app/config/specs/open-api3-latest-console.json +++ b/app/config/specs/open-api3-latest-console.json @@ -2655,7 +2655,10 @@ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-token-email.md", "rate-limit": 10, "rate-time": 3600, - "rate-key": "url:{url},email:{param-email}", + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], "scope": "sessions.write", "platforms": [ "server", @@ -4356,7 +4359,7 @@ "x-appwrite": { "method": "chat", "group": "console", - "weight": 304, + "weight": 307, "cookies": false, "type": "", "deprecated": false, @@ -4416,7 +4419,7 @@ "x-appwrite": { "method": "getResource", "group": null, - "weight": 428, + "weight": 431, "cookies": false, "type": "", "deprecated": false, @@ -4491,7 +4494,7 @@ "x-appwrite": { "method": "variables", "group": "console", - "weight": 303, + "weight": 306, "cookies": false, "type": "", "deprecated": false, @@ -4691,7 +4694,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 115, + "weight": 118, "cookies": false, "type": "", "deprecated": false, @@ -7986,7 +7989,7 @@ "tags": [ "databases" ], - "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.\n", + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", "responses": { "201": { "description": "Document", @@ -8018,6 +8021,51 @@ "server" ], "packaging": false, + "methods": [ + { + "name": "createDocument", + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console." + }, + { + "name": "createDocuments", + "parameters": [ + "databaseId", + "collectionId", + "documents" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console." + } + ], "auth": { "Project": [] } @@ -8074,12 +8122,285 @@ "items": { "type": "string" } + }, + "documents": { + "type": "array", + "description": "Array of documents data as JSON objects.", + "x-example": null, + "items": { + "type": "object" + } } - }, - "required": [ - "documentId", - "data" - ] + } + } + } + } + } + }, + "put": { + "summary": "Create or update documents", + "operationId": "databasesUpsertDocuments", + "tags": [ + "databases" + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.\n", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "x-appwrite": { + "method": "upsertDocuments", + "group": "documents", + "weight": 115, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "databases\/upsert-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "server" + ], + "packaging": false, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documents": { + "type": "array", + "description": "Array of document data as JSON objects. May contain partial documents.", + "x-example": null, + "items": { + "type": "object" + } + } + } + } + } + } + } + }, + "patch": { + "summary": "Update documents", + "operationId": "databasesUpdateDocuments", + "tags": [ + "databases" + ], + "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "x-appwrite": { + "method": "updateDocuments", + "group": "documents", + "weight": 114, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "databases\/update-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "server" + ], + "packaging": false, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "x-example": "{}" + }, + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "x-example": null, + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete documents", + "operationId": "databasesDeleteDocuments", + "tags": [ + "databases" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "x-appwrite": { + "method": "deleteDocuments", + "group": "documents", + "weight": 117, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "databases\/delete-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "server" + ], + "packaging": false, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "x-example": null, + "items": { + "type": "string" + } + } + } } } } @@ -8303,7 +8624,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 114, + "weight": 116, "cookies": false, "type": "", "deprecated": false, @@ -8916,7 +9237,7 @@ "x-appwrite": { "method": "getCollectionUsage", "group": null, - "weight": 117, + "weight": 120, "cookies": false, "type": "", "deprecated": false, @@ -9081,7 +9402,7 @@ "x-appwrite": { "method": "getDatabaseUsage", "group": null, - "weight": 116, + "weight": 119, "cookies": false, "type": "", "deprecated": false, @@ -9163,7 +9484,7 @@ "x-appwrite": { "method": "list", "group": "functions", - "weight": 372, + "weight": 375, "cookies": false, "type": "", "deprecated": false, @@ -9236,7 +9557,7 @@ "x-appwrite": { "method": "create", "group": "functions", - "weight": 369, + "weight": 372, "cookies": false, "type": "", "deprecated": false, @@ -9467,7 +9788,7 @@ "x-appwrite": { "method": "listRuntimes", "group": "runtimes", - "weight": 374, + "weight": 377, "cookies": false, "type": "", "deprecated": false, @@ -9516,7 +9837,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "runtimes", - "weight": 375, + "weight": 378, "cookies": false, "type": "", "deprecated": false, @@ -9566,7 +9887,7 @@ "x-appwrite": { "method": "listTemplates", "group": "templates", - "weight": 398, + "weight": 401, "cookies": false, "type": "", "deprecated": false, @@ -9666,7 +9987,7 @@ "x-appwrite": { "method": "getTemplate", "group": "templates", - "weight": 397, + "weight": 400, "cookies": false, "type": "", "deprecated": false, @@ -9726,7 +10047,7 @@ "x-appwrite": { "method": "listUsage", "group": null, - "weight": 391, + "weight": 394, "cookies": false, "type": "", "deprecated": false, @@ -9798,7 +10119,7 @@ "x-appwrite": { "method": "get", "group": "functions", - "weight": 370, + "weight": 373, "cookies": false, "type": "", "deprecated": false, @@ -9857,7 +10178,7 @@ "x-appwrite": { "method": "update", "group": "functions", - "weight": 371, + "weight": 374, "cookies": false, "type": "", "deprecated": false, @@ -10085,7 +10406,7 @@ "x-appwrite": { "method": "delete", "group": "functions", - "weight": 373, + "weight": 376, "cookies": false, "type": "", "deprecated": false, @@ -10146,7 +10467,7 @@ "x-appwrite": { "method": "updateFunctionDeployment", "group": "functions", - "weight": 378, + "weight": 381, "cookies": false, "type": "", "deprecated": false, @@ -10226,7 +10547,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 379, + "weight": 382, "cookies": false, "type": "", "deprecated": false, @@ -10309,7 +10630,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 376, + "weight": 379, "cookies": false, "type": "upload", "deprecated": false, @@ -10405,7 +10726,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 384, + "weight": 387, "cookies": false, "type": "", "deprecated": false, @@ -10490,7 +10811,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 381, + "weight": 384, "cookies": false, "type": "", "deprecated": false, @@ -10593,7 +10914,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 382, + "weight": 385, "cookies": false, "type": "", "deprecated": false, @@ -10690,7 +11011,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 377, + "weight": 380, "cookies": false, "type": "", "deprecated": false, @@ -10752,7 +11073,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 380, + "weight": 383, "cookies": false, "type": "", "deprecated": false, @@ -10816,7 +11137,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 383, + "weight": 386, "cookies": false, "type": "location", "deprecated": false, @@ -10906,7 +11227,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 385, + "weight": 388, "cookies": false, "type": "", "deprecated": false, @@ -10977,7 +11298,7 @@ "x-appwrite": { "method": "listExecutions", "group": "executions", - "weight": 388, + "weight": 391, "cookies": false, "type": "", "deprecated": false, @@ -11052,7 +11373,7 @@ "x-appwrite": { "method": "createExecution", "group": "executions", - "weight": 386, + "weight": 389, "cookies": false, "type": "", "deprecated": false, @@ -11167,7 +11488,7 @@ "x-appwrite": { "method": "getExecution", "group": "executions", - "weight": 387, + "weight": 390, "cookies": false, "type": "", "deprecated": false, @@ -11232,7 +11553,7 @@ "x-appwrite": { "method": "deleteExecution", "group": "executions", - "weight": 389, + "weight": 392, "cookies": false, "type": "", "deprecated": false, @@ -11303,7 +11624,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 390, + "weight": 393, "cookies": false, "type": "", "deprecated": false, @@ -11385,7 +11706,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 394, + "weight": 397, "cookies": false, "type": "", "deprecated": false, @@ -11444,7 +11765,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 392, + "weight": 395, "cookies": false, "type": "", "deprecated": false, @@ -11535,7 +11856,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 393, + "weight": 396, "cookies": false, "type": "", "deprecated": false, @@ -11604,7 +11925,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 395, + "weight": 398, "cookies": false, "type": "", "deprecated": false, @@ -11695,7 +12016,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 396, + "weight": 399, "cookies": false, "type": "", "deprecated": false, @@ -11766,7 +12087,7 @@ "x-appwrite": { "method": "query", "group": "graphql", - "weight": 302, + "weight": 305, "cookies": false, "type": "graphql", "deprecated": false, @@ -11818,7 +12139,7 @@ "x-appwrite": { "method": "mutation", "group": "graphql", - "weight": 301, + "weight": 304, "cookies": false, "type": "graphql", "deprecated": false, @@ -11870,7 +12191,7 @@ "x-appwrite": { "method": "get", "group": "health", - "weight": 126, + "weight": 129, "cookies": false, "type": "", "deprecated": false, @@ -11919,7 +12240,7 @@ "x-appwrite": { "method": "getAntivirus", "group": "health", - "weight": 147, + "weight": 150, "cookies": false, "type": "", "deprecated": false, @@ -11968,7 +12289,7 @@ "x-appwrite": { "method": "getCache", "group": "health", - "weight": 129, + "weight": 132, "cookies": false, "type": "", "deprecated": false, @@ -12017,7 +12338,7 @@ "x-appwrite": { "method": "getCertificate", "group": "health", - "weight": 134, + "weight": 137, "cookies": false, "type": "", "deprecated": false, @@ -12077,7 +12398,7 @@ "x-appwrite": { "method": "getDB", "group": "health", - "weight": 128, + "weight": 131, "cookies": false, "type": "", "deprecated": false, @@ -12126,7 +12447,7 @@ "x-appwrite": { "method": "getPubSub", "group": "health", - "weight": 130, + "weight": 133, "cookies": false, "type": "", "deprecated": false, @@ -12175,7 +12496,7 @@ "x-appwrite": { "method": "getQueueBuilds", "group": "queue", - "weight": 136, + "weight": 139, "cookies": false, "type": "", "deprecated": false, @@ -12237,7 +12558,7 @@ "x-appwrite": { "method": "getQueueCertificates", "group": "queue", - "weight": 135, + "weight": 138, "cookies": false, "type": "", "deprecated": false, @@ -12299,7 +12620,7 @@ "x-appwrite": { "method": "getQueueDatabases", "group": "queue", - "weight": 137, + "weight": 140, "cookies": false, "type": "", "deprecated": false, @@ -12372,7 +12693,7 @@ "x-appwrite": { "method": "getQueueDeletes", "group": "queue", - "weight": 138, + "weight": 141, "cookies": false, "type": "", "deprecated": false, @@ -12434,7 +12755,7 @@ "x-appwrite": { "method": "getFailedJobs", "group": "queue", - "weight": 148, + "weight": 151, "cookies": false, "type": "", "deprecated": false, @@ -12522,7 +12843,7 @@ "x-appwrite": { "method": "getQueueFunctions", "group": "queue", - "weight": 142, + "weight": 145, "cookies": false, "type": "", "deprecated": false, @@ -12584,7 +12905,7 @@ "x-appwrite": { "method": "getQueueLogs", "group": "queue", - "weight": 133, + "weight": 136, "cookies": false, "type": "", "deprecated": false, @@ -12646,7 +12967,7 @@ "x-appwrite": { "method": "getQueueMails", "group": "queue", - "weight": 139, + "weight": 142, "cookies": false, "type": "", "deprecated": false, @@ -12708,7 +13029,7 @@ "x-appwrite": { "method": "getQueueMessaging", "group": "queue", - "weight": 140, + "weight": 143, "cookies": false, "type": "", "deprecated": false, @@ -12770,7 +13091,7 @@ "x-appwrite": { "method": "getQueueMigrations", "group": "queue", - "weight": 141, + "weight": 144, "cookies": false, "type": "", "deprecated": false, @@ -12832,7 +13153,7 @@ "x-appwrite": { "method": "getQueueStatsResources", "group": "queue", - "weight": 143, + "weight": 146, "cookies": false, "type": "", "deprecated": false, @@ -12894,7 +13215,7 @@ "x-appwrite": { "method": "getQueueUsage", "group": "queue", - "weight": 144, + "weight": 147, "cookies": false, "type": "", "deprecated": false, @@ -12956,7 +13277,7 @@ "x-appwrite": { "method": "getQueueWebhooks", "group": "queue", - "weight": 132, + "weight": 135, "cookies": false, "type": "", "deprecated": false, @@ -13018,7 +13339,7 @@ "x-appwrite": { "method": "getStorage", "group": "storage", - "weight": 146, + "weight": 149, "cookies": false, "type": "", "deprecated": false, @@ -13067,7 +13388,7 @@ "x-appwrite": { "method": "getStorageLocal", "group": "storage", - "weight": 145, + "weight": 148, "cookies": false, "type": "", "deprecated": false, @@ -13116,7 +13437,7 @@ "x-appwrite": { "method": "getTime", "group": "health", - "weight": 131, + "weight": 134, "cookies": false, "type": "", "deprecated": false, @@ -13165,7 +13486,7 @@ "x-appwrite": { "method": "get", "group": null, - "weight": 118, + "weight": 121, "cookies": false, "type": "", "deprecated": false, @@ -13217,7 +13538,7 @@ "x-appwrite": { "method": "listCodes", "group": null, - "weight": 119, + "weight": 122, "cookies": false, "type": "", "deprecated": false, @@ -13269,7 +13590,7 @@ "x-appwrite": { "method": "listContinents", "group": null, - "weight": 123, + "weight": 126, "cookies": false, "type": "", "deprecated": false, @@ -13321,7 +13642,7 @@ "x-appwrite": { "method": "listCountries", "group": null, - "weight": 120, + "weight": 123, "cookies": false, "type": "", "deprecated": false, @@ -13373,7 +13694,7 @@ "x-appwrite": { "method": "listCountriesEU", "group": null, - "weight": 121, + "weight": 124, "cookies": false, "type": "", "deprecated": false, @@ -13425,7 +13746,7 @@ "x-appwrite": { "method": "listCountriesPhones", "group": null, - "weight": 122, + "weight": 125, "cookies": false, "type": "", "deprecated": false, @@ -13477,7 +13798,7 @@ "x-appwrite": { "method": "listCurrencies", "group": null, - "weight": 124, + "weight": 127, "cookies": false, "type": "", "deprecated": false, @@ -13529,7 +13850,7 @@ "x-appwrite": { "method": "listLanguages", "group": null, - "weight": 125, + "weight": 128, "cookies": false, "type": "", "deprecated": false, @@ -13581,7 +13902,7 @@ "x-appwrite": { "method": "listMessages", "group": "messages", - "weight": 356, + "weight": 359, "cookies": false, "type": "", "deprecated": false, @@ -13657,7 +13978,7 @@ "x-appwrite": { "method": "createEmail", "group": "messages", - "weight": 353, + "weight": 356, "cookies": false, "type": "", "deprecated": false, @@ -13801,7 +14122,7 @@ "x-appwrite": { "method": "updateEmail", "group": "messages", - "weight": 360, + "weight": 363, "cookies": false, "type": "", "deprecated": false, @@ -13947,7 +14268,7 @@ "x-appwrite": { "method": "createPush", "group": "messages", - "weight": 355, + "weight": 358, "cookies": false, "type": "", "deprecated": false, @@ -14121,7 +14442,7 @@ "x-appwrite": { "method": "updatePush", "group": "messages", - "weight": 362, + "weight": 365, "cookies": false, "type": "", "deprecated": false, @@ -14299,7 +14620,7 @@ "x-appwrite": { "method": "createSms", "group": "messages", - "weight": 354, + "weight": 357, "cookies": false, "type": "", "deprecated": false, @@ -14408,7 +14729,7 @@ "x-appwrite": { "method": "updateSms", "group": "messages", - "weight": 361, + "weight": 364, "cookies": false, "type": "", "deprecated": false, @@ -14520,7 +14841,7 @@ "x-appwrite": { "method": "getMessage", "group": "messages", - "weight": 359, + "weight": 362, "cookies": false, "type": "", "deprecated": false, @@ -14573,7 +14894,7 @@ "x-appwrite": { "method": "delete", "group": "messages", - "weight": 363, + "weight": 366, "cookies": false, "type": "", "deprecated": false, @@ -14635,7 +14956,7 @@ "x-appwrite": { "method": "listMessageLogs", "group": "logs", - "weight": 357, + "weight": 360, "cookies": false, "type": "", "deprecated": false, @@ -14710,7 +15031,7 @@ "x-appwrite": { "method": "listTargets", "group": "messages", - "weight": 358, + "weight": 361, "cookies": false, "type": "", "deprecated": false, @@ -14785,7 +15106,7 @@ "x-appwrite": { "method": "listProviders", "group": "providers", - "weight": 328, + "weight": 331, "cookies": false, "type": "", "deprecated": false, @@ -14861,7 +15182,7 @@ "x-appwrite": { "method": "createApnsProvider", "group": "providers", - "weight": 327, + "weight": 330, "cookies": false, "type": "", "deprecated": false, @@ -14966,7 +15287,7 @@ "x-appwrite": { "method": "updateApnsProvider", "group": "providers", - "weight": 340, + "weight": 343, "cookies": false, "type": "", "deprecated": false, @@ -15074,7 +15395,7 @@ "x-appwrite": { "method": "createFcmProvider", "group": "providers", - "weight": 326, + "weight": 329, "cookies": false, "type": "", "deprecated": false, @@ -15159,7 +15480,7 @@ "x-appwrite": { "method": "updateFcmProvider", "group": "providers", - "weight": 339, + "weight": 342, "cookies": false, "type": "", "deprecated": false, @@ -15247,7 +15568,7 @@ "x-appwrite": { "method": "createMailgunProvider", "group": "providers", - "weight": 318, + "weight": 321, "cookies": false, "type": "", "deprecated": false, @@ -15362,7 +15683,7 @@ "x-appwrite": { "method": "updateMailgunProvider", "group": "providers", - "weight": 331, + "weight": 334, "cookies": false, "type": "", "deprecated": false, @@ -15480,7 +15801,7 @@ "x-appwrite": { "method": "createMsg91Provider", "group": "providers", - "weight": 321, + "weight": 324, "cookies": false, "type": "", "deprecated": false, @@ -15575,7 +15896,7 @@ "x-appwrite": { "method": "updateMsg91Provider", "group": "providers", - "weight": 334, + "weight": 337, "cookies": false, "type": "", "deprecated": false, @@ -15673,7 +15994,7 @@ "x-appwrite": { "method": "createSendgridProvider", "group": "providers", - "weight": 319, + "weight": 322, "cookies": false, "type": "", "deprecated": false, @@ -15778,7 +16099,7 @@ "x-appwrite": { "method": "updateSendgridProvider", "group": "providers", - "weight": 332, + "weight": 335, "cookies": false, "type": "", "deprecated": false, @@ -15886,7 +16207,7 @@ "x-appwrite": { "method": "createSmtpProvider", "group": "providers", - "weight": 320, + "weight": 323, "cookies": false, "type": "", "deprecated": false, @@ -16029,7 +16350,7 @@ "x-appwrite": { "method": "updateSmtpProvider", "group": "providers", - "weight": 333, + "weight": 336, "cookies": false, "type": "", "deprecated": false, @@ -16174,7 +16495,7 @@ "x-appwrite": { "method": "createTelesignProvider", "group": "providers", - "weight": 322, + "weight": 325, "cookies": false, "type": "", "deprecated": false, @@ -16269,7 +16590,7 @@ "x-appwrite": { "method": "updateTelesignProvider", "group": "providers", - "weight": 335, + "weight": 338, "cookies": false, "type": "", "deprecated": false, @@ -16367,7 +16688,7 @@ "x-appwrite": { "method": "createTextmagicProvider", "group": "providers", - "weight": 323, + "weight": 326, "cookies": false, "type": "", "deprecated": false, @@ -16462,7 +16783,7 @@ "x-appwrite": { "method": "updateTextmagicProvider", "group": "providers", - "weight": 336, + "weight": 339, "cookies": false, "type": "", "deprecated": false, @@ -16560,7 +16881,7 @@ "x-appwrite": { "method": "createTwilioProvider", "group": "providers", - "weight": 324, + "weight": 327, "cookies": false, "type": "", "deprecated": false, @@ -16655,7 +16976,7 @@ "x-appwrite": { "method": "updateTwilioProvider", "group": "providers", - "weight": 337, + "weight": 340, "cookies": false, "type": "", "deprecated": false, @@ -16753,7 +17074,7 @@ "x-appwrite": { "method": "createVonageProvider", "group": "providers", - "weight": 325, + "weight": 328, "cookies": false, "type": "", "deprecated": false, @@ -16848,7 +17169,7 @@ "x-appwrite": { "method": "updateVonageProvider", "group": "providers", - "weight": 338, + "weight": 341, "cookies": false, "type": "", "deprecated": false, @@ -16946,7 +17267,7 @@ "x-appwrite": { "method": "getProvider", "group": "providers", - "weight": 330, + "weight": 333, "cookies": false, "type": "", "deprecated": false, @@ -16999,7 +17320,7 @@ "x-appwrite": { "method": "deleteProvider", "group": "providers", - "weight": 341, + "weight": 344, "cookies": false, "type": "", "deprecated": false, @@ -17061,7 +17382,7 @@ "x-appwrite": { "method": "listProviderLogs", "group": "providers", - "weight": 329, + "weight": 332, "cookies": false, "type": "", "deprecated": false, @@ -17136,7 +17457,7 @@ "x-appwrite": { "method": "listSubscriberLogs", "group": "subscribers", - "weight": 350, + "weight": 353, "cookies": false, "type": "", "deprecated": false, @@ -17211,7 +17532,7 @@ "x-appwrite": { "method": "listTopics", "group": "topics", - "weight": 343, + "weight": 346, "cookies": false, "type": "", "deprecated": false, @@ -17285,7 +17606,7 @@ "x-appwrite": { "method": "createTopic", "group": "topics", - "weight": 342, + "weight": 345, "cookies": false, "type": "", "deprecated": false, @@ -17368,7 +17689,7 @@ "x-appwrite": { "method": "getTopic", "group": "topics", - "weight": 345, + "weight": 348, "cookies": false, "type": "", "deprecated": false, @@ -17428,7 +17749,7 @@ "x-appwrite": { "method": "updateTopic", "group": "topics", - "weight": 346, + "weight": 349, "cookies": false, "type": "", "deprecated": false, @@ -17505,7 +17826,7 @@ "x-appwrite": { "method": "deleteTopic", "group": "topics", - "weight": 347, + "weight": 350, "cookies": false, "type": "", "deprecated": false, @@ -17567,7 +17888,7 @@ "x-appwrite": { "method": "listTopicLogs", "group": "topics", - "weight": 344, + "weight": 347, "cookies": false, "type": "", "deprecated": false, @@ -17642,7 +17963,7 @@ "x-appwrite": { "method": "listSubscribers", "group": "subscribers", - "weight": 349, + "weight": 352, "cookies": false, "type": "", "deprecated": false, @@ -17726,7 +18047,7 @@ "x-appwrite": { "method": "createSubscriber", "group": "subscribers", - "weight": 348, + "weight": 351, "cookies": false, "type": "", "deprecated": false, @@ -17816,7 +18137,7 @@ "x-appwrite": { "method": "getSubscriber", "group": "subscribers", - "weight": 351, + "weight": 354, "cookies": false, "type": "", "deprecated": false, @@ -17879,7 +18200,7 @@ "x-appwrite": { "method": "deleteSubscriber", "group": "subscribers", - "weight": 352, + "weight": 355, "cookies": false, "type": "", "deprecated": false, @@ -17954,7 +18275,7 @@ "x-appwrite": { "method": "list", "group": null, - "weight": 310, + "weight": 313, "cookies": false, "type": "", "deprecated": false, @@ -18028,7 +18349,7 @@ "x-appwrite": { "method": "createAppwriteMigration", "group": null, - "weight": 305, + "weight": 308, "cookies": false, "type": "", "deprecated": false, @@ -18116,7 +18437,7 @@ "x-appwrite": { "method": "getAppwriteReport", "group": null, - "weight": 312, + "weight": 315, "cookies": false, "type": "", "deprecated": false, @@ -18209,7 +18530,7 @@ "x-appwrite": { "method": "createCsvMigration", "group": null, - "weight": 309, + "weight": 312, "cookies": false, "type": "", "deprecated": false, @@ -18288,7 +18609,7 @@ "x-appwrite": { "method": "createFirebaseMigration", "group": null, - "weight": 306, + "weight": 309, "cookies": false, "type": "", "deprecated": false, @@ -18364,7 +18685,7 @@ "x-appwrite": { "method": "getFirebaseReport", "group": null, - "weight": 313, + "weight": 316, "cookies": false, "type": "", "deprecated": false, @@ -18436,7 +18757,7 @@ "x-appwrite": { "method": "createNHostMigration", "group": null, - "weight": 308, + "weight": 311, "cookies": false, "type": "", "deprecated": false, @@ -18547,7 +18868,7 @@ "x-appwrite": { "method": "getNHostReport", "group": null, - "weight": 315, + "weight": 318, "cookies": false, "type": "", "deprecated": false, @@ -18680,7 +19001,7 @@ "x-appwrite": { "method": "createSupabaseMigration", "group": null, - "weight": 307, + "weight": 310, "cookies": false, "type": "", "deprecated": false, @@ -18785,7 +19106,7 @@ "x-appwrite": { "method": "getSupabaseReport", "group": null, - "weight": 314, + "weight": 317, "cookies": false, "type": "", "deprecated": false, @@ -18909,7 +19230,7 @@ "x-appwrite": { "method": "get", "group": null, - "weight": 311, + "weight": 314, "cookies": false, "type": "", "deprecated": false, @@ -18967,7 +19288,7 @@ "x-appwrite": { "method": "retry", "group": null, - "weight": 316, + "weight": 319, "cookies": false, "type": "", "deprecated": false, @@ -19018,7 +19339,7 @@ "x-appwrite": { "method": "delete", "group": null, - "weight": 317, + "weight": 320, "cookies": false, "type": "", "deprecated": false, @@ -19078,7 +19399,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 196, + "weight": 199, "cookies": false, "type": "", "deprecated": false, @@ -19166,7 +19487,7 @@ "x-appwrite": { "method": "listVariables", "group": null, - "weight": 198, + "weight": 201, "cookies": false, "type": "", "deprecated": false, @@ -19212,7 +19533,7 @@ "x-appwrite": { "method": "createVariable", "group": null, - "weight": 197, + "weight": 200, "cookies": false, "type": "", "deprecated": false, @@ -19290,7 +19611,7 @@ "x-appwrite": { "method": "getVariable", "group": null, - "weight": 199, + "weight": 202, "cookies": false, "type": "", "deprecated": false, @@ -19348,7 +19669,7 @@ "x-appwrite": { "method": "updateVariable", "group": null, - "weight": 200, + "weight": 203, "cookies": false, "type": "", "deprecated": false, @@ -19428,7 +19749,7 @@ "x-appwrite": { "method": "deleteVariable", "group": null, - "weight": 201, + "weight": 204, "cookies": false, "type": "", "deprecated": false, @@ -19488,7 +19809,7 @@ "x-appwrite": { "method": "list", "group": "projects", - "weight": 151, + "weight": 154, "cookies": false, "type": "", "deprecated": false, @@ -19560,7 +19881,7 @@ "x-appwrite": { "method": "create", "group": "projects", - "weight": 150, + "weight": 153, "cookies": false, "type": "", "deprecated": false, @@ -19694,7 +20015,7 @@ "x-appwrite": { "method": "get", "group": "projects", - "weight": 152, + "weight": 155, "cookies": false, "type": "", "deprecated": false, @@ -19752,7 +20073,7 @@ "x-appwrite": { "method": "update", "group": "projects", - "weight": 153, + "weight": 156, "cookies": false, "type": "", "deprecated": false, @@ -19867,7 +20188,7 @@ "x-appwrite": { "method": "delete", "group": "projects", - "weight": 170, + "weight": 173, "cookies": false, "type": "", "deprecated": false, @@ -19927,7 +20248,7 @@ "x-appwrite": { "method": "updateApiStatus", "group": "projects", - "weight": 157, + "weight": 160, "cookies": false, "type": "", "deprecated": false, @@ -20019,7 +20340,7 @@ "x-appwrite": { "method": "updateApiStatusAll", "group": "projects", - "weight": 158, + "weight": 161, "cookies": false, "type": "", "deprecated": false, @@ -20098,7 +20419,7 @@ "x-appwrite": { "method": "updateAuthDuration", "group": "auth", - "weight": 163, + "weight": 166, "cookies": false, "type": "", "deprecated": false, @@ -20177,7 +20498,7 @@ "x-appwrite": { "method": "updateAuthLimit", "group": "auth", - "weight": 162, + "weight": 165, "cookies": false, "type": "", "deprecated": false, @@ -20256,7 +20577,7 @@ "x-appwrite": { "method": "updateAuthSessionsLimit", "group": "auth", - "weight": 168, + "weight": 171, "cookies": false, "type": "", "deprecated": false, @@ -20335,7 +20656,7 @@ "x-appwrite": { "method": "updateMembershipsPrivacy", "group": "auth", - "weight": 161, + "weight": 164, "cookies": false, "type": "", "deprecated": false, @@ -20426,7 +20747,7 @@ "x-appwrite": { "method": "updateMockNumbers", "group": "auth", - "weight": 169, + "weight": 172, "cookies": false, "type": "", "deprecated": false, @@ -20508,7 +20829,7 @@ "x-appwrite": { "method": "updateAuthPasswordDictionary", "group": "auth", - "weight": 166, + "weight": 169, "cookies": false, "type": "", "deprecated": false, @@ -20587,7 +20908,7 @@ "x-appwrite": { "method": "updateAuthPasswordHistory", "group": "auth", - "weight": 165, + "weight": 168, "cookies": false, "type": "", "deprecated": false, @@ -20666,7 +20987,7 @@ "x-appwrite": { "method": "updatePersonalDataCheck", "group": "auth", - "weight": 167, + "weight": 170, "cookies": false, "type": "", "deprecated": false, @@ -20745,7 +21066,7 @@ "x-appwrite": { "method": "updateSessionAlerts", "group": "auth", - "weight": 160, + "weight": 163, "cookies": false, "type": "", "deprecated": false, @@ -20824,7 +21145,7 @@ "x-appwrite": { "method": "updateAuthStatus", "group": "auth", - "weight": 164, + "weight": 167, "cookies": false, "type": "", "deprecated": false, @@ -20924,7 +21245,7 @@ "x-appwrite": { "method": "listDevKeys", "group": "devKeys", - "weight": 367, + "weight": 370, "cookies": false, "type": "", "deprecated": false, @@ -20967,17 +21288,6 @@ "default": [] }, "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "x-example": "", - "default": "" - }, - "in": "query" } ] }, @@ -21003,7 +21313,7 @@ "x-appwrite": { "method": "createDevKey", "group": "devKeys", - "weight": 364, + "weight": 367, "cookies": false, "type": "", "deprecated": false, @@ -21088,7 +21398,7 @@ "x-appwrite": { "method": "getDevKey", "group": "devKeys", - "weight": 366, + "weight": 369, "cookies": false, "type": "", "deprecated": false, @@ -21156,7 +21466,7 @@ "x-appwrite": { "method": "updateDevKey", "group": "devKeys", - "weight": 365, + "weight": 368, "cookies": false, "type": "", "deprecated": false, @@ -21242,7 +21552,7 @@ "x-appwrite": { "method": "deleteDevKey", "group": "devKeys", - "weight": 368, + "weight": 371, "cookies": false, "type": "", "deprecated": false, @@ -21312,7 +21622,7 @@ "x-appwrite": { "method": "createJWT", "group": "auth", - "weight": 182, + "weight": 185, "cookies": false, "type": "", "deprecated": false, @@ -21399,7 +21709,7 @@ "x-appwrite": { "method": "listKeys", "group": "keys", - "weight": 178, + "weight": 181, "cookies": false, "type": "", "deprecated": false, @@ -21457,7 +21767,7 @@ "x-appwrite": { "method": "createKey", "group": "keys", - "weight": 177, + "weight": 180, "cookies": false, "type": "", "deprecated": false, @@ -21550,7 +21860,7 @@ "x-appwrite": { "method": "getKey", "group": "keys", - "weight": 179, + "weight": 182, "cookies": false, "type": "", "deprecated": false, @@ -21618,7 +21928,7 @@ "x-appwrite": { "method": "updateKey", "group": "keys", - "weight": 180, + "weight": 183, "cookies": false, "type": "", "deprecated": false, @@ -21712,7 +22022,7 @@ "x-appwrite": { "method": "deleteKey", "group": "keys", - "weight": 181, + "weight": 184, "cookies": false, "type": "", "deprecated": false, @@ -21782,7 +22092,7 @@ "x-appwrite": { "method": "updateOAuth2", "group": "auth", - "weight": 159, + "weight": 162, "cookies": false, "type": "", "deprecated": false, @@ -21920,7 +22230,7 @@ "x-appwrite": { "method": "listPlatforms", "group": "platforms", - "weight": 184, + "weight": 187, "cookies": false, "type": "", "deprecated": false, @@ -21978,7 +22288,7 @@ "x-appwrite": { "method": "createPlatform", "group": "platforms", - "weight": 183, + "weight": 186, "cookies": false, "type": "", "deprecated": false, @@ -22097,7 +22407,7 @@ "x-appwrite": { "method": "getPlatform", "group": "platforms", - "weight": 185, + "weight": 188, "cookies": false, "type": "", "deprecated": false, @@ -22165,7 +22475,7 @@ "x-appwrite": { "method": "updatePlatform", "group": "platforms", - "weight": 186, + "weight": 189, "cookies": false, "type": "", "deprecated": false, @@ -22260,7 +22570,7 @@ "x-appwrite": { "method": "deletePlatform", "group": "platforms", - "weight": 187, + "weight": 190, "cookies": false, "type": "", "deprecated": false, @@ -22330,7 +22640,7 @@ "x-appwrite": { "method": "updateServiceStatus", "group": "projects", - "weight": 155, + "weight": 158, "cookies": false, "type": "", "deprecated": false, @@ -22431,7 +22741,7 @@ "x-appwrite": { "method": "updateServiceStatusAll", "group": "projects", - "weight": 156, + "weight": 159, "cookies": false, "type": "", "deprecated": false, @@ -22510,7 +22820,7 @@ "x-appwrite": { "method": "updateSmtp", "group": "templates", - "weight": 188, + "weight": 191, "cookies": false, "type": "", "deprecated": false, @@ -22628,7 +22938,7 @@ "x-appwrite": { "method": "createSmtpTest", "group": "templates", - "weight": 189, + "weight": 192, "cookies": false, "type": "", "deprecated": false, @@ -22759,7 +23069,7 @@ "x-appwrite": { "method": "updateTeam", "group": "projects", - "weight": 154, + "weight": 157, "cookies": false, "type": "", "deprecated": false, @@ -22838,7 +23148,7 @@ "x-appwrite": { "method": "getEmailTemplate", "group": "templates", - "weight": 191, + "weight": 194, "cookies": false, "type": "", "deprecated": false, @@ -23062,7 +23372,7 @@ "x-appwrite": { "method": "updateEmailTemplate", "group": "templates", - "weight": 193, + "weight": 196, "cookies": false, "type": "", "deprecated": false, @@ -23326,7 +23636,7 @@ "x-appwrite": { "method": "deleteEmailTemplate", "group": "templates", - "weight": 195, + "weight": 198, "cookies": false, "type": "", "deprecated": false, @@ -23552,7 +23862,7 @@ "x-appwrite": { "method": "getSmsTemplate", "group": "templates", - "weight": 190, + "weight": 193, "cookies": false, "type": "", "deprecated": false, @@ -23773,7 +24083,7 @@ "x-appwrite": { "method": "updateSmsTemplate", "group": "templates", - "weight": 192, + "weight": 195, "cookies": false, "type": "", "deprecated": false, @@ -24013,7 +24323,7 @@ "x-appwrite": { "method": "deleteSmsTemplate", "group": "templates", - "weight": 194, + "weight": 197, "cookies": false, "type": "", "deprecated": false, @@ -24236,7 +24546,7 @@ "x-appwrite": { "method": "listWebhooks", "group": "webhooks", - "weight": 172, + "weight": 175, "cookies": false, "type": "", "deprecated": false, @@ -24294,7 +24604,7 @@ "x-appwrite": { "method": "createWebhook", "group": "webhooks", - "weight": 171, + "weight": 174, "cookies": false, "type": "", "deprecated": false, @@ -24409,7 +24719,7 @@ "x-appwrite": { "method": "getWebhook", "group": "webhooks", - "weight": 173, + "weight": 176, "cookies": false, "type": "", "deprecated": false, @@ -24477,7 +24787,7 @@ "x-appwrite": { "method": "updateWebhook", "group": "webhooks", - "weight": 174, + "weight": 177, "cookies": false, "type": "", "deprecated": false, @@ -24593,7 +24903,7 @@ "x-appwrite": { "method": "deleteWebhook", "group": "webhooks", - "weight": 176, + "weight": 179, "cookies": false, "type": "", "deprecated": false, @@ -24663,7 +24973,7 @@ "x-appwrite": { "method": "updateWebhookSignature", "group": "webhooks", - "weight": 175, + "weight": 178, "cookies": false, "type": "", "deprecated": false, @@ -24733,7 +25043,7 @@ "x-appwrite": { "method": "listRules", "group": null, - "weight": 288, + "weight": 291, "cookies": false, "type": "", "deprecated": false, @@ -24807,7 +25117,7 @@ "x-appwrite": { "method": "createAPIRule", "group": null, - "weight": 429, + "weight": 432, "cookies": false, "type": "", "deprecated": false, @@ -24874,7 +25184,7 @@ "x-appwrite": { "method": "createFunctionRule", "group": null, - "weight": 431, + "weight": 434, "cookies": false, "type": "", "deprecated": false, @@ -24952,7 +25262,7 @@ "x-appwrite": { "method": "createRedirectRule", "group": null, - "weight": 432, + "weight": 435, "cookies": false, "type": "", "deprecated": false, @@ -25044,7 +25354,7 @@ "x-appwrite": { "method": "createSiteRule", "group": null, - "weight": 430, + "weight": 433, "cookies": false, "type": "", "deprecated": false, @@ -25122,7 +25432,7 @@ "x-appwrite": { "method": "getRule", "group": null, - "weight": 289, + "weight": 292, "cookies": false, "type": "", "deprecated": false, @@ -25173,7 +25483,7 @@ "x-appwrite": { "method": "deleteRule", "group": null, - "weight": 290, + "weight": 293, "cookies": false, "type": "", "deprecated": false, @@ -25233,7 +25543,7 @@ "x-appwrite": { "method": "updateRuleVerification", "group": null, - "weight": 291, + "weight": 294, "cookies": false, "type": "", "deprecated": false, @@ -25293,7 +25603,7 @@ "x-appwrite": { "method": "list", "group": "sites", - "weight": 401, + "weight": 404, "cookies": false, "type": "", "deprecated": false, @@ -25363,7 +25673,7 @@ "x-appwrite": { "method": "create", "group": "sites", - "weight": 399, + "weight": 402, "cookies": false, "type": "", "deprecated": false, @@ -25609,7 +25919,7 @@ "x-appwrite": { "method": "listFrameworks", "group": "frameworks", - "weight": 404, + "weight": 407, "cookies": false, "type": "", "deprecated": false, @@ -25658,7 +25968,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "frameworks", - "weight": 427, + "weight": 430, "cookies": false, "type": "", "deprecated": false, @@ -25708,7 +26018,7 @@ "x-appwrite": { "method": "listTemplates", "group": "templates", - "weight": 423, + "weight": 426, "cookies": false, "type": "", "deprecated": false, @@ -25808,7 +26118,7 @@ "x-appwrite": { "method": "getTemplate", "group": "templates", - "weight": 424, + "weight": 427, "cookies": false, "type": "", "deprecated": false, @@ -25868,7 +26178,7 @@ "x-appwrite": { "method": "listUsage", "group": null, - "weight": 425, + "weight": 428, "cookies": false, "type": "", "deprecated": false, @@ -25940,7 +26250,7 @@ "x-appwrite": { "method": "get", "group": "sites", - "weight": 400, + "weight": 403, "cookies": false, "type": "", "deprecated": false, @@ -25999,7 +26309,7 @@ "x-appwrite": { "method": "update", "group": "sites", - "weight": 402, + "weight": 405, "cookies": false, "type": "", "deprecated": false, @@ -26241,7 +26551,7 @@ "x-appwrite": { "method": "delete", "group": "sites", - "weight": 403, + "weight": 406, "cookies": false, "type": "", "deprecated": false, @@ -26302,7 +26612,7 @@ "x-appwrite": { "method": "updateSiteDeployment", "group": "sites", - "weight": 410, + "weight": 413, "cookies": false, "type": "", "deprecated": false, @@ -26382,7 +26692,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 409, + "weight": 412, "cookies": false, "type": "", "deprecated": false, @@ -26465,7 +26775,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 405, + "weight": 408, "cookies": false, "type": "upload", "deprecated": false, @@ -26566,7 +26876,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 413, + "weight": 416, "cookies": false, "type": "", "deprecated": false, @@ -26646,7 +26956,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 406, + "weight": 409, "cookies": false, "type": "", "deprecated": false, @@ -26749,7 +27059,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 407, + "weight": 410, "cookies": false, "type": "", "deprecated": false, @@ -26847,7 +27157,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 408, + "weight": 411, "cookies": false, "type": "", "deprecated": false, @@ -26909,7 +27219,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 411, + "weight": 414, "cookies": false, "type": "", "deprecated": false, @@ -26973,7 +27283,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 412, + "weight": 415, "cookies": false, "type": "location", "deprecated": false, @@ -27063,7 +27373,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 414, + "weight": 417, "cookies": false, "type": "", "deprecated": false, @@ -27134,7 +27444,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 416, + "weight": 419, "cookies": false, "type": "", "deprecated": false, @@ -27205,7 +27515,7 @@ "x-appwrite": { "method": "getLog", "group": "logs", - "weight": 415, + "weight": 418, "cookies": false, "type": "", "deprecated": false, @@ -27267,7 +27577,7 @@ "x-appwrite": { "method": "deleteLog", "group": "logs", - "weight": 417, + "weight": 420, "cookies": false, "type": "", "deprecated": false, @@ -27338,7 +27648,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 426, + "weight": 429, "cookies": false, "type": "", "deprecated": false, @@ -27420,7 +27730,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 420, + "weight": 423, "cookies": false, "type": "", "deprecated": false, @@ -27479,7 +27789,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 418, + "weight": 421, "cookies": false, "type": "", "deprecated": false, @@ -27570,7 +27880,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 419, + "weight": 422, "cookies": false, "type": "", "deprecated": false, @@ -27639,7 +27949,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 421, + "weight": 424, "cookies": false, "type": "", "deprecated": false, @@ -27730,7 +28040,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 422, + "weight": 425, "cookies": false, "type": "", "deprecated": false, @@ -27801,7 +28111,7 @@ "x-appwrite": { "method": "listBuckets", "group": "buckets", - "weight": 203, + "weight": 206, "cookies": false, "type": "", "deprecated": false, @@ -27874,7 +28184,7 @@ "x-appwrite": { "method": "createBucket", "group": "buckets", - "weight": 202, + "weight": 205, "cookies": false, "type": "", "deprecated": false, @@ -28001,7 +28311,7 @@ "x-appwrite": { "method": "getBucket", "group": "buckets", - "weight": 204, + "weight": 207, "cookies": false, "type": "", "deprecated": false, @@ -28060,7 +28370,7 @@ "x-appwrite": { "method": "updateBucket", "group": "buckets", - "weight": 205, + "weight": 208, "cookies": false, "type": "", "deprecated": false, @@ -28184,7 +28494,7 @@ "x-appwrite": { "method": "deleteBucket", "group": "buckets", - "weight": 206, + "weight": 209, "cookies": false, "type": "", "deprecated": false, @@ -28245,7 +28555,7 @@ "x-appwrite": { "method": "listFiles", "group": "files", - "weight": 208, + "weight": 211, "cookies": false, "type": "", "deprecated": false, @@ -28331,7 +28641,7 @@ "x-appwrite": { "method": "createFile", "group": "files", - "weight": 207, + "weight": 210, "cookies": false, "type": "upload", "deprecated": false, @@ -28429,7 +28739,7 @@ "x-appwrite": { "method": "getFile", "group": "files", - "weight": 209, + "weight": 212, "cookies": false, "type": "", "deprecated": false, @@ -28501,7 +28811,7 @@ "x-appwrite": { "method": "updateFile", "group": "files", - "weight": 214, + "weight": 217, "cookies": false, "type": "", "deprecated": false, @@ -28590,7 +28900,7 @@ "x-appwrite": { "method": "deleteFile", "group": "files", - "weight": 215, + "weight": 218, "cookies": false, "type": "", "deprecated": false, @@ -28657,7 +28967,7 @@ "x-appwrite": { "method": "getFileDownload", "group": "files", - "weight": 211, + "weight": 214, "cookies": false, "type": "location", "deprecated": false, @@ -28704,6 +29014,17 @@ "x-example": "" }, "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "x-example": "", + "default": "" + }, + "in": "query" } ] } @@ -28724,7 +29045,7 @@ "x-appwrite": { "method": "getFilePreview", "group": "files", - "weight": 210, + "weight": 213, "cookies": false, "type": "location", "deprecated": false, @@ -28921,6 +29242,17 @@ "default": "" }, "in": "query" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "x-example": "", + "default": "" + }, + "in": "query" } ] } @@ -28941,7 +29273,7 @@ "x-appwrite": { "method": "getFileView", "group": "files", - "weight": 212, + "weight": 215, "cookies": false, "type": "location", "deprecated": false, @@ -28988,6 +29320,17 @@ "x-example": "" }, "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "x-example": "", + "default": "" + }, + "in": "query" } ] } @@ -29015,7 +29358,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 216, + "weight": 219, "cookies": false, "type": "", "deprecated": false, @@ -29087,7 +29430,7 @@ "x-appwrite": { "method": "getBucketUsage", "group": null, - "weight": 217, + "weight": 220, "cookies": false, "type": "", "deprecated": false, @@ -29169,7 +29512,7 @@ "x-appwrite": { "method": "list", "group": "teams", - "weight": 219, + "weight": 222, "cookies": false, "type": "", "deprecated": false, @@ -29245,7 +29588,7 @@ "x-appwrite": { "method": "create", "group": "teams", - "weight": 218, + "weight": 221, "cookies": false, "type": "", "deprecated": false, @@ -29330,7 +29673,7 @@ "x-appwrite": { "method": "get", "group": "teams", - "weight": 220, + "weight": 223, "cookies": false, "type": "", "deprecated": false, @@ -29392,7 +29735,7 @@ "x-appwrite": { "method": "updateName", "group": "teams", - "weight": 222, + "weight": 225, "cookies": false, "type": "", "deprecated": false, @@ -29466,7 +29809,7 @@ "x-appwrite": { "method": "delete", "group": "teams", - "weight": 224, + "weight": 227, "cookies": false, "type": "", "deprecated": false, @@ -29530,7 +29873,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 231, + "weight": 234, "cookies": false, "type": "", "deprecated": false, @@ -29603,7 +29946,7 @@ "x-appwrite": { "method": "listMemberships", "group": "memberships", - "weight": 226, + "weight": 229, "cookies": false, "type": "", "deprecated": false, @@ -29689,7 +30032,7 @@ "x-appwrite": { "method": "createMembership", "group": "memberships", - "weight": 225, + "weight": 228, "cookies": false, "type": "", "deprecated": false, @@ -29800,7 +30143,7 @@ "x-appwrite": { "method": "getMembership", "group": "memberships", - "weight": 227, + "weight": 230, "cookies": false, "type": "", "deprecated": false, @@ -29872,7 +30215,7 @@ "x-appwrite": { "method": "updateMembership", "group": "memberships", - "weight": 228, + "weight": 231, "cookies": false, "type": "", "deprecated": false, @@ -29959,7 +30302,7 @@ "x-appwrite": { "method": "deleteMembership", "group": "memberships", - "weight": 230, + "weight": 233, "cookies": false, "type": "", "deprecated": false, @@ -30033,7 +30376,7 @@ "x-appwrite": { "method": "updateMembershipStatus", "group": "memberships", - "weight": 229, + "weight": 232, "cookies": false, "type": "", "deprecated": false, @@ -30130,7 +30473,7 @@ "x-appwrite": { "method": "getPrefs", "group": "teams", - "weight": 221, + "weight": 224, "cookies": false, "type": "", "deprecated": false, @@ -30190,7 +30533,7 @@ "x-appwrite": { "method": "updatePrefs", "group": "teams", - "weight": 223, + "weight": 226, "cookies": false, "type": "", "deprecated": false, @@ -30271,7 +30614,7 @@ "x-appwrite": { "method": "list", "group": "files", - "weight": 436, + "weight": 438, "cookies": false, "type": "", "deprecated": false, @@ -30337,7 +30680,7 @@ "tags": [ "tokens" ], - "description": "Create a new token. A token is linked to a file or a bucket and manages permissions for those file(s). Token can be passed as a header or request get parameter.", + "description": "Create a new token. A token is linked to a file. Token can be passed as a header or request get parameter.", "responses": { "201": { "description": "ResourceToken", @@ -30353,12 +30696,12 @@ "x-appwrite": { "method": "createFileToken", "group": "files", - "weight": 433, + "weight": 436, "cookies": false, "type": "", "deprecated": false, "demo": "tokens\/create-file-token.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new token. A token is linked to a file or a bucket and manages permissions for those file(s). Token can be passed as a header or request get parameter.", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new token. A token is linked to a file. Token can be passed as a header or request get parameter.", "rate-limit": 60, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -30413,14 +30756,6 @@ "description": "Token expiry date", "x-example": null, "x-nullable": true - }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - } } } } @@ -30452,7 +30787,7 @@ "x-appwrite": { "method": "get", "group": "tokens", - "weight": 434, + "weight": 437, "cookies": false, "type": "", "deprecated": false, @@ -30463,9 +30798,7 @@ "rate-key": "url:{url},ip:{ip}", "scope": "tokens.read", "platforms": [ - "client", - "server", - "server" + "console" ], "packaging": false, "auth": { @@ -30474,9 +30807,7 @@ }, "security": [ { - "Project": [], - "Key": [], - "JWT": [] + "Project": [] } ], "parameters": [ @@ -30498,7 +30829,7 @@ "tags": [ "tokens" ], - "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date or permissions.", + "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date.", "responses": { "200": { "description": "ResourceToken", @@ -30514,20 +30845,18 @@ "x-appwrite": { "method": "update", "group": "tokens", - "weight": 437, + "weight": 439, "cookies": false, "type": "", "deprecated": false, "demo": "tokens\/update.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterUpdate a token by its unique ID. Use this endpoint to update a token's expiry date or permissions.", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterUpdate a token by its unique ID. Use this endpoint to update a token's expiry date.", "rate-limit": 60, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": "tokens.write", "platforms": [ - "client", - "server", - "server" + "console" ], "packaging": false, "auth": { @@ -30536,9 +30865,7 @@ }, "security": [ { - "Project": [], - "Key": [], - "JWT": [] + "Project": [] } ], "parameters": [ @@ -30564,14 +30891,6 @@ "description": "File token expiry date", "x-example": null, "x-nullable": true - }, - "permissions": { - "type": "array", - "description": "An array of permission string. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - } } } } @@ -30594,7 +30913,7 @@ "x-appwrite": { "method": "delete", "group": "tokens", - "weight": 438, + "weight": 440, "cookies": false, "type": "", "deprecated": false, @@ -30605,9 +30924,7 @@ "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": "tokens.write", "platforms": [ - "client", - "server", - "server" + "console" ], "packaging": false, "auth": { @@ -30616,9 +30933,7 @@ }, "security": [ { - "Project": [], - "Key": [], - "JWT": [] + "Project": [] } ], "parameters": [ @@ -30635,70 +30950,6 @@ ] } }, - "\/tokens\/{tokenId}\/jwt": { - "get": { - "summary": "Get token as JWT", - "operationId": "tokensGetJWT", - "tags": [ - "tokens" - ], - "description": "Get a JWT based token by its unique ID. You can use the JWT to authenticate on behalf of the user.", - "responses": { - "200": { - "description": "JWT", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/jwt" - } - } - } - } - }, - "x-appwrite": { - "method": "getJWT", - "group": "tokens", - "weight": 435, - "cookies": false, - "type": "", - "deprecated": false, - "demo": "tokens\/get-j-w-t.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterGet a JWT based token by its unique ID. You can use the JWT to authenticate on behalf of the user.", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", - "platforms": [ - "client", - "server", - "server" - ], - "packaging": false, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "tokenId", - "description": "File token ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } - ] - } - }, "\/users": { "get": { "summary": "List users", @@ -30722,7 +30973,7 @@ "x-appwrite": { "method": "list", "group": "users", - "weight": 241, + "weight": 244, "cookies": false, "type": "", "deprecated": false, @@ -30795,7 +31046,7 @@ "x-appwrite": { "method": "create", "group": "users", - "weight": 232, + "weight": 235, "cookies": false, "type": "", "deprecated": false, @@ -30883,7 +31134,7 @@ "x-appwrite": { "method": "createArgon2User", "group": "users", - "weight": 235, + "weight": 238, "cookies": false, "type": "", "deprecated": false, @@ -30968,7 +31219,7 @@ "x-appwrite": { "method": "createBcryptUser", "group": "users", - "weight": 233, + "weight": 236, "cookies": false, "type": "", "deprecated": false, @@ -31053,7 +31304,7 @@ "x-appwrite": { "method": "listIdentities", "group": "identities", - "weight": 249, + "weight": 252, "cookies": false, "type": "", "deprecated": false, @@ -31121,7 +31372,7 @@ "x-appwrite": { "method": "deleteIdentity", "group": "identities", - "weight": 272, + "weight": 275, "cookies": false, "type": "", "deprecated": false, @@ -31182,7 +31433,7 @@ "x-appwrite": { "method": "createMD5User", "group": "users", - "weight": 234, + "weight": 237, "cookies": false, "type": "", "deprecated": false, @@ -31267,7 +31518,7 @@ "x-appwrite": { "method": "createPHPassUser", "group": "users", - "weight": 237, + "weight": 240, "cookies": false, "type": "", "deprecated": false, @@ -31352,7 +31603,7 @@ "x-appwrite": { "method": "createScryptUser", "group": "users", - "weight": 238, + "weight": 241, "cookies": false, "type": "", "deprecated": false, @@ -31467,7 +31718,7 @@ "x-appwrite": { "method": "createScryptModifiedUser", "group": "users", - "weight": 239, + "weight": 242, "cookies": false, "type": "", "deprecated": false, @@ -31570,7 +31821,7 @@ "x-appwrite": { "method": "createSHAUser", "group": "users", - "weight": 236, + "weight": 239, "cookies": false, "type": "", "deprecated": false, @@ -31675,7 +31926,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 274, + "weight": 277, "cookies": false, "type": "", "deprecated": false, @@ -31747,7 +31998,7 @@ "x-appwrite": { "method": "get", "group": "users", - "weight": 242, + "weight": 245, "cookies": false, "type": "", "deprecated": false, @@ -31799,7 +32050,7 @@ "x-appwrite": { "method": "delete", "group": "users", - "weight": 270, + "weight": 273, "cookies": false, "type": "", "deprecated": false, @@ -31860,7 +32111,7 @@ "x-appwrite": { "method": "updateEmail", "group": "users", - "weight": 255, + "weight": 258, "cookies": false, "type": "", "deprecated": false, @@ -31940,7 +32191,7 @@ "x-appwrite": { "method": "createJWT", "group": "sessions", - "weight": 273, + "weight": 276, "cookies": false, "type": "", "deprecated": false, @@ -32022,7 +32273,7 @@ "x-appwrite": { "method": "updateLabels", "group": "users", - "weight": 251, + "weight": 254, "cookies": false, "type": "", "deprecated": false, @@ -32105,7 +32356,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 247, + "weight": 250, "cookies": false, "type": "", "deprecated": false, @@ -32179,7 +32430,7 @@ "x-appwrite": { "method": "listMemberships", "group": "memberships", - "weight": 246, + "weight": 249, "cookies": false, "type": "", "deprecated": false, @@ -32264,7 +32515,7 @@ "x-appwrite": { "method": "updateMfa", "group": "users", - "weight": 260, + "weight": 263, "cookies": false, "type": "", "deprecated": false, @@ -32337,7 +32588,7 @@ "x-appwrite": { "method": "deleteMfaAuthenticator", "group": "mfa", - "weight": 265, + "weight": 268, "cookies": false, "type": "", "deprecated": false, @@ -32413,7 +32664,7 @@ "x-appwrite": { "method": "listMfaFactors", "group": "mfa", - "weight": 261, + "weight": 264, "cookies": false, "type": "", "deprecated": false, @@ -32474,7 +32725,7 @@ "x-appwrite": { "method": "getMfaRecoveryCodes", "group": "mfa", - "weight": 262, + "weight": 265, "cookies": false, "type": "", "deprecated": false, @@ -32533,7 +32784,7 @@ "x-appwrite": { "method": "updateMfaRecoveryCodes", "group": "mfa", - "weight": 264, + "weight": 267, "cookies": false, "type": "", "deprecated": false, @@ -32592,7 +32843,7 @@ "x-appwrite": { "method": "createMfaRecoveryCodes", "group": "mfa", - "weight": 263, + "weight": 266, "cookies": false, "type": "", "deprecated": false, @@ -32653,7 +32904,7 @@ "x-appwrite": { "method": "updateName", "group": "users", - "weight": 253, + "weight": 256, "cookies": false, "type": "", "deprecated": false, @@ -32733,7 +32984,7 @@ "x-appwrite": { "method": "updatePassword", "group": "users", - "weight": 254, + "weight": 257, "cookies": false, "type": "", "deprecated": false, @@ -32813,7 +33064,7 @@ "x-appwrite": { "method": "updatePhone", "group": "users", - "weight": 256, + "weight": 259, "cookies": false, "type": "", "deprecated": false, @@ -32893,7 +33144,7 @@ "x-appwrite": { "method": "getPrefs", "group": "users", - "weight": 243, + "weight": 246, "cookies": false, "type": "", "deprecated": false, @@ -32952,7 +33203,7 @@ "x-appwrite": { "method": "updatePrefs", "group": "users", - "weight": 258, + "weight": 261, "cookies": false, "type": "", "deprecated": false, @@ -33032,7 +33283,7 @@ "x-appwrite": { "method": "listSessions", "group": "sessions", - "weight": 245, + "weight": 248, "cookies": false, "type": "", "deprecated": false, @@ -33091,7 +33342,7 @@ "x-appwrite": { "method": "createSession", "group": "sessions", - "weight": 266, + "weight": 269, "cookies": false, "type": "", "deprecated": false, @@ -33143,7 +33394,7 @@ "x-appwrite": { "method": "deleteSessions", "group": "sessions", - "weight": 269, + "weight": 272, "cookies": false, "type": "", "deprecated": false, @@ -33197,7 +33448,7 @@ "x-appwrite": { "method": "deleteSession", "group": "sessions", - "weight": 268, + "weight": 271, "cookies": false, "type": "", "deprecated": false, @@ -33268,7 +33519,7 @@ "x-appwrite": { "method": "updateStatus", "group": "users", - "weight": 250, + "weight": 253, "cookies": false, "type": "", "deprecated": false, @@ -33348,7 +33599,7 @@ "x-appwrite": { "method": "listTargets", "group": "targets", - "weight": 248, + "weight": 251, "cookies": false, "type": "", "deprecated": false, @@ -33421,7 +33672,7 @@ "x-appwrite": { "method": "createTarget", "group": "targets", - "weight": 240, + "weight": 243, "cookies": false, "type": "", "deprecated": false, @@ -33531,7 +33782,7 @@ "x-appwrite": { "method": "getTarget", "group": "targets", - "weight": 244, + "weight": 247, "cookies": false, "type": "", "deprecated": false, @@ -33601,7 +33852,7 @@ "x-appwrite": { "method": "updateTarget", "group": "targets", - "weight": 259, + "weight": 262, "cookies": false, "type": "", "deprecated": false, @@ -33690,7 +33941,7 @@ "x-appwrite": { "method": "deleteTarget", "group": "targets", - "weight": 271, + "weight": 274, "cookies": false, "type": "", "deprecated": false, @@ -33762,7 +34013,7 @@ "x-appwrite": { "method": "createToken", "group": "sessions", - "weight": 267, + "weight": 270, "cookies": false, "type": "", "deprecated": false, @@ -33844,7 +34095,7 @@ "x-appwrite": { "method": "updateEmailVerification", "group": "users", - "weight": 257, + "weight": 260, "cookies": false, "type": "", "deprecated": false, @@ -33924,7 +34175,7 @@ "x-appwrite": { "method": "updatePhoneVerification", "group": "users", - "weight": 252, + "weight": 255, "cookies": false, "type": "", "deprecated": false, @@ -34004,7 +34255,7 @@ "x-appwrite": { "method": "createRepositoryDetection", "group": "repositories", - "weight": 278, + "weight": 281, "cookies": false, "type": "", "deprecated": false, @@ -34100,7 +34351,7 @@ "x-appwrite": { "method": "listRepositories", "group": "repositories", - "weight": 279, + "weight": 282, "cookies": false, "type": "", "deprecated": false, @@ -34185,7 +34436,7 @@ "x-appwrite": { "method": "createRepository", "group": "repositories", - "weight": 280, + "weight": 283, "cookies": false, "type": "", "deprecated": false, @@ -34270,7 +34521,7 @@ "x-appwrite": { "method": "getRepository", "group": "repositories", - "weight": 281, + "weight": 284, "cookies": false, "type": "", "deprecated": false, @@ -34340,7 +34591,7 @@ "x-appwrite": { "method": "listRepositoryBranches", "group": "repositories", - "weight": 282, + "weight": 285, "cookies": false, "type": "", "deprecated": false, @@ -34410,7 +34661,7 @@ "x-appwrite": { "method": "getRepositoryContents", "group": "repositories", - "weight": 277, + "weight": 280, "cookies": false, "type": "", "deprecated": false, @@ -34484,7 +34735,7 @@ "x-appwrite": { "method": "updateExternalDeployments", "group": "repositories", - "weight": 287, + "weight": 290, "cookies": false, "type": "", "deprecated": false, @@ -34573,7 +34824,7 @@ "x-appwrite": { "method": "listInstallations", "group": "installations", - "weight": 284, + "weight": 287, "cookies": false, "type": "", "deprecated": false, @@ -34647,7 +34898,7 @@ "x-appwrite": { "method": "getInstallation", "group": "installations", - "weight": 285, + "weight": 288, "cookies": false, "type": "", "deprecated": false, @@ -34698,7 +34949,7 @@ "x-appwrite": { "method": "deleteInstallation", "group": "installations", - "weight": 286, + "weight": 289, "cookies": false, "type": "", "deprecated": false, @@ -34739,90 +34990,71 @@ "tags": [ { "name": "account", - "description": "The Account service allows you to authenticate and manage a user account.", - "x-globalAttributes": [] + "description": "The Account service allows you to authenticate and manage a user account." }, { "name": "avatars", - "description": "The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars.", - "x-globalAttributes": [] + "description": "The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars." }, { "name": "databases", - "description": "The Databases service allows you to create structured collections of documents, query and filter lists of documents", - "x-globalAttributes": [ - "databaseId" - ] + "description": "The Databases service allows you to create structured collections of documents, query and filter lists of documents" }, { "name": "locale", - "description": "The Locale service allows you to customize your app based on your users' location.", - "x-globalAttributes": [] + "description": "The Locale service allows you to customize your app based on your users' location." }, { "name": "health", - "description": "The Health service allows you to both validate and monitor your Appwrite server's health.", - "x-globalAttributes": [] + "description": "The Health service allows you to both validate and monitor your Appwrite server's health." }, { "name": "projects", - "description": "The Project service allows you to manage all the projects in your Appwrite server.", - "x-globalAttributes": [] + "description": "The Project service allows you to manage all the projects in your Appwrite server." }, { "name": "project", - "description": "The Project service allows you to manage all the projects in your Appwrite server.", - "x-globalAttributes": [] + "description": "The Project service allows you to manage all the projects in your Appwrite server." }, { "name": "storage", - "description": "The Storage service allows you to manage your project files.", - "x-globalAttributes": [] + "description": "The Storage service allows you to manage your project files." }, { "name": "teams", - "description": "The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources", - "x-globalAttributes": [] + "description": "The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources" }, { "name": "users", - "description": "The Users service allows you to manage your project users.", - "x-globalAttributes": [] + "description": "The Users service allows you to manage your project users." }, { "name": "sites", - "description": "The Sites Service allows you view, create and manage your web applications.", - "x-globalAttributes": [] + "description": "The Sites Service allows you view, create and manage your web applications." }, { "name": "functions", - "description": "The Functions Service allows you view, create and manage your Cloud Functions.", - "x-globalAttributes": [] + "description": "The Functions Service allows you view, create and manage your Cloud Functions." }, { "name": "proxy", - "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration.", - "x-globalAttributes": [] + "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration." }, { "name": "graphql", - "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL.", - "x-globalAttributes": [] + "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL." }, { "name": "console", - "description": "The Console service allows you to interact with console relevant informations.", - "x-globalAttributes": [] + "description": "The Console service allows you to interact with console relevant informations." }, { "name": "migrations", - "description": "The Migrations service allows you to migrate third-party data to your Appwrite project.", - "x-globalAttributes": [] + "description": "The Migrations service allows you to migrate third-party data to your Appwrite project." }, { "name": "messaging", - "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.).", - "x-globalAttributes": [] + "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.)." } ], "components": { @@ -38045,16 +38277,6 @@ "description": "Token creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "$permissions": { - "type": "array", - "description": "Token permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "x-example": [ - "read(\"any\")" - ] - }, "resourceId": { "type": "string", "description": "Resource ID.", @@ -38070,6 +38292,11 @@ "description": "Token expiration date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, + "secret": { + "type": "string", + "description": "JWT encoded string.", + "x-example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + }, "accessedAt": { "type": "string", "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", @@ -38079,10 +38306,10 @@ "required": [ "$id", "$createdAt", - "$permissions", "resourceId", "resourceType", "expire", + "secret", "accessedAt" ] }, diff --git a/app/config/specs/open-api3-latest-server.json b/app/config/specs/open-api3-latest-server.json index 19b94378c2..509337fc81 100644 --- a/app/config/specs/open-api3-latest-server.json +++ b/app/config/specs/open-api3-latest-server.json @@ -2327,7 +2327,10 @@ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-token-email.md", "rate-limit": 10, "rate-time": 3600, - "rate-key": "url:{url},email:{param-email}", + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], "scope": "sessions.write", "platforms": [ "server", @@ -7467,7 +7470,7 @@ "tags": [ "databases" ], - "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.\n", + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", "responses": { "201": { "description": "Document", @@ -7499,6 +7502,51 @@ "server" ], "packaging": false, + "methods": [ + { + "name": "createDocument", + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console." + }, + { + "name": "createDocuments", + "parameters": [ + "databaseId", + "collectionId", + "documents" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console." + } + ], "auth": { "Project": [], "Session": [] @@ -7557,12 +7605,288 @@ "items": { "type": "string" } + }, + "documents": { + "type": "array", + "description": "Array of documents data as JSON objects.", + "x-example": null, + "items": { + "type": "object" + } } - }, - "required": [ - "documentId", - "data" - ] + } + } + } + } + } + }, + "put": { + "summary": "Create or update documents", + "operationId": "databasesUpsertDocuments", + "tags": [ + "databases" + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.\n", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "x-appwrite": { + "method": "upsertDocuments", + "group": "documents", + "weight": 115, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "databases\/upsert-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "server" + ], + "packaging": false, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documents": { + "type": "array", + "description": "Array of document data as JSON objects. May contain partial documents.", + "x-example": null, + "items": { + "type": "object" + } + } + } + } + } + } + } + }, + "patch": { + "summary": "Update documents", + "operationId": "databasesUpdateDocuments", + "tags": [ + "databases" + ], + "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "x-appwrite": { + "method": "updateDocuments", + "group": "documents", + "weight": 114, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "databases\/update-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "server" + ], + "packaging": false, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "x-example": "{}" + }, + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "x-example": null, + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete documents", + "operationId": "databasesDeleteDocuments", + "tags": [ + "databases" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "x-appwrite": { + "method": "deleteDocuments", + "group": "documents", + "weight": 117, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "databases\/delete-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "server" + ], + "packaging": false, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "x-example": null, + "items": { + "type": "string" + } + } + } } } } @@ -7790,7 +8114,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 114, + "weight": 116, "cookies": false, "type": "", "deprecated": false, @@ -8233,7 +8557,7 @@ "x-appwrite": { "method": "list", "group": "functions", - "weight": 372, + "weight": 375, "cookies": false, "type": "", "deprecated": false, @@ -8307,7 +8631,7 @@ "x-appwrite": { "method": "create", "group": "functions", - "weight": 369, + "weight": 372, "cookies": false, "type": "", "deprecated": false, @@ -8539,7 +8863,7 @@ "x-appwrite": { "method": "listRuntimes", "group": "runtimes", - "weight": 374, + "weight": 377, "cookies": false, "type": "", "deprecated": false, @@ -8589,7 +8913,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "runtimes", - "weight": 375, + "weight": 378, "cookies": false, "type": "", "deprecated": false, @@ -8640,7 +8964,7 @@ "x-appwrite": { "method": "get", "group": "functions", - "weight": 370, + "weight": 373, "cookies": false, "type": "", "deprecated": false, @@ -8700,7 +9024,7 @@ "x-appwrite": { "method": "update", "group": "functions", - "weight": 371, + "weight": 374, "cookies": false, "type": "", "deprecated": false, @@ -8929,7 +9253,7 @@ "x-appwrite": { "method": "delete", "group": "functions", - "weight": 373, + "weight": 376, "cookies": false, "type": "", "deprecated": false, @@ -8991,7 +9315,7 @@ "x-appwrite": { "method": "updateFunctionDeployment", "group": "functions", - "weight": 378, + "weight": 381, "cookies": false, "type": "", "deprecated": false, @@ -9072,7 +9396,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 379, + "weight": 382, "cookies": false, "type": "", "deprecated": false, @@ -9156,7 +9480,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 376, + "weight": 379, "cookies": false, "type": "upload", "deprecated": false, @@ -9253,7 +9577,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 384, + "weight": 387, "cookies": false, "type": "", "deprecated": false, @@ -9339,7 +9663,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 381, + "weight": 384, "cookies": false, "type": "", "deprecated": false, @@ -9443,7 +9767,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 382, + "weight": 385, "cookies": false, "type": "", "deprecated": false, @@ -9541,7 +9865,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 377, + "weight": 380, "cookies": false, "type": "", "deprecated": false, @@ -9604,7 +9928,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 380, + "weight": 383, "cookies": false, "type": "", "deprecated": false, @@ -9669,7 +9993,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 383, + "weight": 386, "cookies": false, "type": "location", "deprecated": false, @@ -9760,7 +10084,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 385, + "weight": 388, "cookies": false, "type": "", "deprecated": false, @@ -9832,7 +10156,7 @@ "x-appwrite": { "method": "listExecutions", "group": "executions", - "weight": 388, + "weight": 391, "cookies": false, "type": "", "deprecated": false, @@ -9909,7 +10233,7 @@ "x-appwrite": { "method": "createExecution", "group": "executions", - "weight": 386, + "weight": 389, "cookies": false, "type": "", "deprecated": false, @@ -10026,7 +10350,7 @@ "x-appwrite": { "method": "getExecution", "group": "executions", - "weight": 387, + "weight": 390, "cookies": false, "type": "", "deprecated": false, @@ -10093,7 +10417,7 @@ "x-appwrite": { "method": "deleteExecution", "group": "executions", - "weight": 389, + "weight": 392, "cookies": false, "type": "", "deprecated": false, @@ -10165,7 +10489,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 394, + "weight": 397, "cookies": false, "type": "", "deprecated": false, @@ -10225,7 +10549,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 392, + "weight": 395, "cookies": false, "type": "", "deprecated": false, @@ -10317,7 +10641,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 393, + "weight": 396, "cookies": false, "type": "", "deprecated": false, @@ -10387,7 +10711,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 395, + "weight": 398, "cookies": false, "type": "", "deprecated": false, @@ -10479,7 +10803,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 396, + "weight": 399, "cookies": false, "type": "", "deprecated": false, @@ -10551,7 +10875,7 @@ "x-appwrite": { "method": "query", "group": "graphql", - "weight": 302, + "weight": 305, "cookies": false, "type": "graphql", "deprecated": false, @@ -10605,7 +10929,7 @@ "x-appwrite": { "method": "mutation", "group": "graphql", - "weight": 301, + "weight": 304, "cookies": false, "type": "graphql", "deprecated": false, @@ -10659,7 +10983,7 @@ "x-appwrite": { "method": "get", "group": "health", - "weight": 126, + "weight": 129, "cookies": false, "type": "", "deprecated": false, @@ -10709,7 +11033,7 @@ "x-appwrite": { "method": "getAntivirus", "group": "health", - "weight": 147, + "weight": 150, "cookies": false, "type": "", "deprecated": false, @@ -10759,7 +11083,7 @@ "x-appwrite": { "method": "getCache", "group": "health", - "weight": 129, + "weight": 132, "cookies": false, "type": "", "deprecated": false, @@ -10809,7 +11133,7 @@ "x-appwrite": { "method": "getCertificate", "group": "health", - "weight": 134, + "weight": 137, "cookies": false, "type": "", "deprecated": false, @@ -10870,7 +11194,7 @@ "x-appwrite": { "method": "getDB", "group": "health", - "weight": 128, + "weight": 131, "cookies": false, "type": "", "deprecated": false, @@ -10920,7 +11244,7 @@ "x-appwrite": { "method": "getPubSub", "group": "health", - "weight": 130, + "weight": 133, "cookies": false, "type": "", "deprecated": false, @@ -10970,7 +11294,7 @@ "x-appwrite": { "method": "getQueueBuilds", "group": "queue", - "weight": 136, + "weight": 139, "cookies": false, "type": "", "deprecated": false, @@ -11033,7 +11357,7 @@ "x-appwrite": { "method": "getQueueCertificates", "group": "queue", - "weight": 135, + "weight": 138, "cookies": false, "type": "", "deprecated": false, @@ -11096,7 +11420,7 @@ "x-appwrite": { "method": "getQueueDatabases", "group": "queue", - "weight": 137, + "weight": 140, "cookies": false, "type": "", "deprecated": false, @@ -11170,7 +11494,7 @@ "x-appwrite": { "method": "getQueueDeletes", "group": "queue", - "weight": 138, + "weight": 141, "cookies": false, "type": "", "deprecated": false, @@ -11233,7 +11557,7 @@ "x-appwrite": { "method": "getFailedJobs", "group": "queue", - "weight": 148, + "weight": 151, "cookies": false, "type": "", "deprecated": false, @@ -11322,7 +11646,7 @@ "x-appwrite": { "method": "getQueueFunctions", "group": "queue", - "weight": 142, + "weight": 145, "cookies": false, "type": "", "deprecated": false, @@ -11385,7 +11709,7 @@ "x-appwrite": { "method": "getQueueLogs", "group": "queue", - "weight": 133, + "weight": 136, "cookies": false, "type": "", "deprecated": false, @@ -11448,7 +11772,7 @@ "x-appwrite": { "method": "getQueueMails", "group": "queue", - "weight": 139, + "weight": 142, "cookies": false, "type": "", "deprecated": false, @@ -11511,7 +11835,7 @@ "x-appwrite": { "method": "getQueueMessaging", "group": "queue", - "weight": 140, + "weight": 143, "cookies": false, "type": "", "deprecated": false, @@ -11574,7 +11898,7 @@ "x-appwrite": { "method": "getQueueMigrations", "group": "queue", - "weight": 141, + "weight": 144, "cookies": false, "type": "", "deprecated": false, @@ -11637,7 +11961,7 @@ "x-appwrite": { "method": "getQueueStatsResources", "group": "queue", - "weight": 143, + "weight": 146, "cookies": false, "type": "", "deprecated": false, @@ -11700,7 +12024,7 @@ "x-appwrite": { "method": "getQueueUsage", "group": "queue", - "weight": 144, + "weight": 147, "cookies": false, "type": "", "deprecated": false, @@ -11763,7 +12087,7 @@ "x-appwrite": { "method": "getQueueWebhooks", "group": "queue", - "weight": 132, + "weight": 135, "cookies": false, "type": "", "deprecated": false, @@ -11826,7 +12150,7 @@ "x-appwrite": { "method": "getStorage", "group": "storage", - "weight": 146, + "weight": 149, "cookies": false, "type": "", "deprecated": false, @@ -11876,7 +12200,7 @@ "x-appwrite": { "method": "getStorageLocal", "group": "storage", - "weight": 145, + "weight": 148, "cookies": false, "type": "", "deprecated": false, @@ -11926,7 +12250,7 @@ "x-appwrite": { "method": "getTime", "group": "health", - "weight": 131, + "weight": 134, "cookies": false, "type": "", "deprecated": false, @@ -11976,7 +12300,7 @@ "x-appwrite": { "method": "get", "group": null, - "weight": 118, + "weight": 121, "cookies": false, "type": "", "deprecated": false, @@ -12030,7 +12354,7 @@ "x-appwrite": { "method": "listCodes", "group": null, - "weight": 119, + "weight": 122, "cookies": false, "type": "", "deprecated": false, @@ -12084,7 +12408,7 @@ "x-appwrite": { "method": "listContinents", "group": null, - "weight": 123, + "weight": 126, "cookies": false, "type": "", "deprecated": false, @@ -12138,7 +12462,7 @@ "x-appwrite": { "method": "listCountries", "group": null, - "weight": 120, + "weight": 123, "cookies": false, "type": "", "deprecated": false, @@ -12192,7 +12516,7 @@ "x-appwrite": { "method": "listCountriesEU", "group": null, - "weight": 121, + "weight": 124, "cookies": false, "type": "", "deprecated": false, @@ -12246,7 +12570,7 @@ "x-appwrite": { "method": "listCountriesPhones", "group": null, - "weight": 122, + "weight": 125, "cookies": false, "type": "", "deprecated": false, @@ -12300,7 +12624,7 @@ "x-appwrite": { "method": "listCurrencies", "group": null, - "weight": 124, + "weight": 127, "cookies": false, "type": "", "deprecated": false, @@ -12354,7 +12678,7 @@ "x-appwrite": { "method": "listLanguages", "group": null, - "weight": 125, + "weight": 128, "cookies": false, "type": "", "deprecated": false, @@ -12408,7 +12732,7 @@ "x-appwrite": { "method": "listMessages", "group": "messages", - "weight": 356, + "weight": 359, "cookies": false, "type": "", "deprecated": false, @@ -12485,7 +12809,7 @@ "x-appwrite": { "method": "createEmail", "group": "messages", - "weight": 353, + "weight": 356, "cookies": false, "type": "", "deprecated": false, @@ -12630,7 +12954,7 @@ "x-appwrite": { "method": "updateEmail", "group": "messages", - "weight": 360, + "weight": 363, "cookies": false, "type": "", "deprecated": false, @@ -12777,7 +13101,7 @@ "x-appwrite": { "method": "createPush", "group": "messages", - "weight": 355, + "weight": 358, "cookies": false, "type": "", "deprecated": false, @@ -12952,7 +13276,7 @@ "x-appwrite": { "method": "updatePush", "group": "messages", - "weight": 362, + "weight": 365, "cookies": false, "type": "", "deprecated": false, @@ -13131,7 +13455,7 @@ "x-appwrite": { "method": "createSms", "group": "messages", - "weight": 354, + "weight": 357, "cookies": false, "type": "", "deprecated": false, @@ -13241,7 +13565,7 @@ "x-appwrite": { "method": "updateSms", "group": "messages", - "weight": 361, + "weight": 364, "cookies": false, "type": "", "deprecated": false, @@ -13354,7 +13678,7 @@ "x-appwrite": { "method": "getMessage", "group": "messages", - "weight": 359, + "weight": 362, "cookies": false, "type": "", "deprecated": false, @@ -13408,7 +13732,7 @@ "x-appwrite": { "method": "delete", "group": "messages", - "weight": 363, + "weight": 366, "cookies": false, "type": "", "deprecated": false, @@ -13471,7 +13795,7 @@ "x-appwrite": { "method": "listMessageLogs", "group": "logs", - "weight": 357, + "weight": 360, "cookies": false, "type": "", "deprecated": false, @@ -13547,7 +13871,7 @@ "x-appwrite": { "method": "listTargets", "group": "messages", - "weight": 358, + "weight": 361, "cookies": false, "type": "", "deprecated": false, @@ -13623,7 +13947,7 @@ "x-appwrite": { "method": "listProviders", "group": "providers", - "weight": 328, + "weight": 331, "cookies": false, "type": "", "deprecated": false, @@ -13700,7 +14024,7 @@ "x-appwrite": { "method": "createApnsProvider", "group": "providers", - "weight": 327, + "weight": 330, "cookies": false, "type": "", "deprecated": false, @@ -13806,7 +14130,7 @@ "x-appwrite": { "method": "updateApnsProvider", "group": "providers", - "weight": 340, + "weight": 343, "cookies": false, "type": "", "deprecated": false, @@ -13915,7 +14239,7 @@ "x-appwrite": { "method": "createFcmProvider", "group": "providers", - "weight": 326, + "weight": 329, "cookies": false, "type": "", "deprecated": false, @@ -14001,7 +14325,7 @@ "x-appwrite": { "method": "updateFcmProvider", "group": "providers", - "weight": 339, + "weight": 342, "cookies": false, "type": "", "deprecated": false, @@ -14090,7 +14414,7 @@ "x-appwrite": { "method": "createMailgunProvider", "group": "providers", - "weight": 318, + "weight": 321, "cookies": false, "type": "", "deprecated": false, @@ -14206,7 +14530,7 @@ "x-appwrite": { "method": "updateMailgunProvider", "group": "providers", - "weight": 331, + "weight": 334, "cookies": false, "type": "", "deprecated": false, @@ -14325,7 +14649,7 @@ "x-appwrite": { "method": "createMsg91Provider", "group": "providers", - "weight": 321, + "weight": 324, "cookies": false, "type": "", "deprecated": false, @@ -14421,7 +14745,7 @@ "x-appwrite": { "method": "updateMsg91Provider", "group": "providers", - "weight": 334, + "weight": 337, "cookies": false, "type": "", "deprecated": false, @@ -14520,7 +14844,7 @@ "x-appwrite": { "method": "createSendgridProvider", "group": "providers", - "weight": 319, + "weight": 322, "cookies": false, "type": "", "deprecated": false, @@ -14626,7 +14950,7 @@ "x-appwrite": { "method": "updateSendgridProvider", "group": "providers", - "weight": 332, + "weight": 335, "cookies": false, "type": "", "deprecated": false, @@ -14735,7 +15059,7 @@ "x-appwrite": { "method": "createSmtpProvider", "group": "providers", - "weight": 320, + "weight": 323, "cookies": false, "type": "", "deprecated": false, @@ -14879,7 +15203,7 @@ "x-appwrite": { "method": "updateSmtpProvider", "group": "providers", - "weight": 333, + "weight": 336, "cookies": false, "type": "", "deprecated": false, @@ -15025,7 +15349,7 @@ "x-appwrite": { "method": "createTelesignProvider", "group": "providers", - "weight": 322, + "weight": 325, "cookies": false, "type": "", "deprecated": false, @@ -15121,7 +15445,7 @@ "x-appwrite": { "method": "updateTelesignProvider", "group": "providers", - "weight": 335, + "weight": 338, "cookies": false, "type": "", "deprecated": false, @@ -15220,7 +15544,7 @@ "x-appwrite": { "method": "createTextmagicProvider", "group": "providers", - "weight": 323, + "weight": 326, "cookies": false, "type": "", "deprecated": false, @@ -15316,7 +15640,7 @@ "x-appwrite": { "method": "updateTextmagicProvider", "group": "providers", - "weight": 336, + "weight": 339, "cookies": false, "type": "", "deprecated": false, @@ -15415,7 +15739,7 @@ "x-appwrite": { "method": "createTwilioProvider", "group": "providers", - "weight": 324, + "weight": 327, "cookies": false, "type": "", "deprecated": false, @@ -15511,7 +15835,7 @@ "x-appwrite": { "method": "updateTwilioProvider", "group": "providers", - "weight": 337, + "weight": 340, "cookies": false, "type": "", "deprecated": false, @@ -15610,7 +15934,7 @@ "x-appwrite": { "method": "createVonageProvider", "group": "providers", - "weight": 325, + "weight": 328, "cookies": false, "type": "", "deprecated": false, @@ -15706,7 +16030,7 @@ "x-appwrite": { "method": "updateVonageProvider", "group": "providers", - "weight": 338, + "weight": 341, "cookies": false, "type": "", "deprecated": false, @@ -15805,7 +16129,7 @@ "x-appwrite": { "method": "getProvider", "group": "providers", - "weight": 330, + "weight": 333, "cookies": false, "type": "", "deprecated": false, @@ -15859,7 +16183,7 @@ "x-appwrite": { "method": "deleteProvider", "group": "providers", - "weight": 341, + "weight": 344, "cookies": false, "type": "", "deprecated": false, @@ -15922,7 +16246,7 @@ "x-appwrite": { "method": "listProviderLogs", "group": "providers", - "weight": 329, + "weight": 332, "cookies": false, "type": "", "deprecated": false, @@ -15998,7 +16322,7 @@ "x-appwrite": { "method": "listSubscriberLogs", "group": "subscribers", - "weight": 350, + "weight": 353, "cookies": false, "type": "", "deprecated": false, @@ -16074,7 +16398,7 @@ "x-appwrite": { "method": "listTopics", "group": "topics", - "weight": 343, + "weight": 346, "cookies": false, "type": "", "deprecated": false, @@ -16149,7 +16473,7 @@ "x-appwrite": { "method": "createTopic", "group": "topics", - "weight": 342, + "weight": 345, "cookies": false, "type": "", "deprecated": false, @@ -16233,7 +16557,7 @@ "x-appwrite": { "method": "getTopic", "group": "topics", - "weight": 345, + "weight": 348, "cookies": false, "type": "", "deprecated": false, @@ -16294,7 +16618,7 @@ "x-appwrite": { "method": "updateTopic", "group": "topics", - "weight": 346, + "weight": 349, "cookies": false, "type": "", "deprecated": false, @@ -16372,7 +16696,7 @@ "x-appwrite": { "method": "deleteTopic", "group": "topics", - "weight": 347, + "weight": 350, "cookies": false, "type": "", "deprecated": false, @@ -16435,7 +16759,7 @@ "x-appwrite": { "method": "listTopicLogs", "group": "topics", - "weight": 344, + "weight": 347, "cookies": false, "type": "", "deprecated": false, @@ -16511,7 +16835,7 @@ "x-appwrite": { "method": "listSubscribers", "group": "subscribers", - "weight": 349, + "weight": 352, "cookies": false, "type": "", "deprecated": false, @@ -16596,7 +16920,7 @@ "x-appwrite": { "method": "createSubscriber", "group": "subscribers", - "weight": 348, + "weight": 351, "cookies": false, "type": "", "deprecated": false, @@ -16688,7 +17012,7 @@ "x-appwrite": { "method": "getSubscriber", "group": "subscribers", - "weight": 351, + "weight": 354, "cookies": false, "type": "", "deprecated": false, @@ -16752,7 +17076,7 @@ "x-appwrite": { "method": "deleteSubscriber", "group": "subscribers", - "weight": 352, + "weight": 355, "cookies": false, "type": "", "deprecated": false, @@ -16829,7 +17153,7 @@ "x-appwrite": { "method": "list", "group": "sites", - "weight": 401, + "weight": 404, "cookies": false, "type": "", "deprecated": false, @@ -16900,7 +17224,7 @@ "x-appwrite": { "method": "create", "group": "sites", - "weight": 399, + "weight": 402, "cookies": false, "type": "", "deprecated": false, @@ -17147,7 +17471,7 @@ "x-appwrite": { "method": "listFrameworks", "group": "frameworks", - "weight": 404, + "weight": 407, "cookies": false, "type": "", "deprecated": false, @@ -17197,7 +17521,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "frameworks", - "weight": 427, + "weight": 430, "cookies": false, "type": "", "deprecated": false, @@ -17248,7 +17572,7 @@ "x-appwrite": { "method": "get", "group": "sites", - "weight": 400, + "weight": 403, "cookies": false, "type": "", "deprecated": false, @@ -17308,7 +17632,7 @@ "x-appwrite": { "method": "update", "group": "sites", - "weight": 402, + "weight": 405, "cookies": false, "type": "", "deprecated": false, @@ -17551,7 +17875,7 @@ "x-appwrite": { "method": "delete", "group": "sites", - "weight": 403, + "weight": 406, "cookies": false, "type": "", "deprecated": false, @@ -17613,7 +17937,7 @@ "x-appwrite": { "method": "updateSiteDeployment", "group": "sites", - "weight": 410, + "weight": 413, "cookies": false, "type": "", "deprecated": false, @@ -17694,7 +18018,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 409, + "weight": 412, "cookies": false, "type": "", "deprecated": false, @@ -17778,7 +18102,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 405, + "weight": 408, "cookies": false, "type": "upload", "deprecated": false, @@ -17880,7 +18204,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 413, + "weight": 416, "cookies": false, "type": "", "deprecated": false, @@ -17961,7 +18285,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 406, + "weight": 409, "cookies": false, "type": "", "deprecated": false, @@ -18065,7 +18389,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 407, + "weight": 410, "cookies": false, "type": "", "deprecated": false, @@ -18164,7 +18488,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 408, + "weight": 411, "cookies": false, "type": "", "deprecated": false, @@ -18227,7 +18551,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 411, + "weight": 414, "cookies": false, "type": "", "deprecated": false, @@ -18292,7 +18616,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 412, + "weight": 415, "cookies": false, "type": "location", "deprecated": false, @@ -18383,7 +18707,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 414, + "weight": 417, "cookies": false, "type": "", "deprecated": false, @@ -18455,7 +18779,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 416, + "weight": 419, "cookies": false, "type": "", "deprecated": false, @@ -18527,7 +18851,7 @@ "x-appwrite": { "method": "getLog", "group": "logs", - "weight": 415, + "weight": 418, "cookies": false, "type": "", "deprecated": false, @@ -18590,7 +18914,7 @@ "x-appwrite": { "method": "deleteLog", "group": "logs", - "weight": 417, + "weight": 420, "cookies": false, "type": "", "deprecated": false, @@ -18662,7 +18986,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 420, + "weight": 423, "cookies": false, "type": "", "deprecated": false, @@ -18722,7 +19046,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 418, + "weight": 421, "cookies": false, "type": "", "deprecated": false, @@ -18814,7 +19138,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 419, + "weight": 422, "cookies": false, "type": "", "deprecated": false, @@ -18884,7 +19208,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 421, + "weight": 424, "cookies": false, "type": "", "deprecated": false, @@ -18976,7 +19300,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 422, + "weight": 425, "cookies": false, "type": "", "deprecated": false, @@ -19048,7 +19372,7 @@ "x-appwrite": { "method": "listBuckets", "group": "buckets", - "weight": 203, + "weight": 206, "cookies": false, "type": "", "deprecated": false, @@ -19122,7 +19446,7 @@ "x-appwrite": { "method": "createBucket", "group": "buckets", - "weight": 202, + "weight": 205, "cookies": false, "type": "", "deprecated": false, @@ -19250,7 +19574,7 @@ "x-appwrite": { "method": "getBucket", "group": "buckets", - "weight": 204, + "weight": 207, "cookies": false, "type": "", "deprecated": false, @@ -19310,7 +19634,7 @@ "x-appwrite": { "method": "updateBucket", "group": "buckets", - "weight": 205, + "weight": 208, "cookies": false, "type": "", "deprecated": false, @@ -19435,7 +19759,7 @@ "x-appwrite": { "method": "deleteBucket", "group": "buckets", - "weight": 206, + "weight": 209, "cookies": false, "type": "", "deprecated": false, @@ -19497,7 +19821,7 @@ "x-appwrite": { "method": "listFiles", "group": "files", - "weight": 208, + "weight": 211, "cookies": false, "type": "", "deprecated": false, @@ -19585,7 +19909,7 @@ "x-appwrite": { "method": "createFile", "group": "files", - "weight": 207, + "weight": 210, "cookies": false, "type": "upload", "deprecated": false, @@ -19685,7 +20009,7 @@ "x-appwrite": { "method": "getFile", "group": "files", - "weight": 209, + "weight": 212, "cookies": false, "type": "", "deprecated": false, @@ -19759,7 +20083,7 @@ "x-appwrite": { "method": "updateFile", "group": "files", - "weight": 214, + "weight": 217, "cookies": false, "type": "", "deprecated": false, @@ -19850,7 +20174,7 @@ "x-appwrite": { "method": "deleteFile", "group": "files", - "weight": 215, + "weight": 218, "cookies": false, "type": "", "deprecated": false, @@ -19919,7 +20243,7 @@ "x-appwrite": { "method": "getFileDownload", "group": "files", - "weight": 211, + "weight": 214, "cookies": false, "type": "location", "deprecated": false, @@ -19968,6 +20292,17 @@ "x-example": "" }, "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "x-example": "", + "default": "" + }, + "in": "query" } ] } @@ -19988,7 +20323,7 @@ "x-appwrite": { "method": "getFilePreview", "group": "files", - "weight": 210, + "weight": 213, "cookies": false, "type": "location", "deprecated": false, @@ -20187,6 +20522,17 @@ "default": "" }, "in": "query" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "x-example": "", + "default": "" + }, + "in": "query" } ] } @@ -20207,7 +20553,7 @@ "x-appwrite": { "method": "getFileView", "group": "files", - "weight": 212, + "weight": 215, "cookies": false, "type": "location", "deprecated": false, @@ -20256,6 +20602,17 @@ "x-example": "" }, "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "x-example": "", + "default": "" + }, + "in": "query" } ] } @@ -20283,7 +20640,7 @@ "x-appwrite": { "method": "list", "group": "teams", - "weight": 219, + "weight": 222, "cookies": false, "type": "", "deprecated": false, @@ -20361,7 +20718,7 @@ "x-appwrite": { "method": "create", "group": "teams", - "weight": 218, + "weight": 221, "cookies": false, "type": "", "deprecated": false, @@ -20448,7 +20805,7 @@ "x-appwrite": { "method": "get", "group": "teams", - "weight": 220, + "weight": 223, "cookies": false, "type": "", "deprecated": false, @@ -20512,7 +20869,7 @@ "x-appwrite": { "method": "updateName", "group": "teams", - "weight": 222, + "weight": 225, "cookies": false, "type": "", "deprecated": false, @@ -20588,7 +20945,7 @@ "x-appwrite": { "method": "delete", "group": "teams", - "weight": 224, + "weight": 227, "cookies": false, "type": "", "deprecated": false, @@ -20654,7 +21011,7 @@ "x-appwrite": { "method": "listMemberships", "group": "memberships", - "weight": 226, + "weight": 229, "cookies": false, "type": "", "deprecated": false, @@ -20742,7 +21099,7 @@ "x-appwrite": { "method": "createMembership", "group": "memberships", - "weight": 225, + "weight": 228, "cookies": false, "type": "", "deprecated": false, @@ -20855,7 +21212,7 @@ "x-appwrite": { "method": "getMembership", "group": "memberships", - "weight": 227, + "weight": 230, "cookies": false, "type": "", "deprecated": false, @@ -20929,7 +21286,7 @@ "x-appwrite": { "method": "updateMembership", "group": "memberships", - "weight": 228, + "weight": 231, "cookies": false, "type": "", "deprecated": false, @@ -21018,7 +21375,7 @@ "x-appwrite": { "method": "deleteMembership", "group": "memberships", - "weight": 230, + "weight": 233, "cookies": false, "type": "", "deprecated": false, @@ -21094,7 +21451,7 @@ "x-appwrite": { "method": "updateMembershipStatus", "group": "memberships", - "weight": 229, + "weight": 232, "cookies": false, "type": "", "deprecated": false, @@ -21193,7 +21550,7 @@ "x-appwrite": { "method": "getPrefs", "group": "teams", - "weight": 221, + "weight": 224, "cookies": false, "type": "", "deprecated": false, @@ -21255,7 +21612,7 @@ "x-appwrite": { "method": "updatePrefs", "group": "teams", - "weight": 223, + "weight": 226, "cookies": false, "type": "", "deprecated": false, @@ -21338,7 +21695,7 @@ "x-appwrite": { "method": "list", "group": "files", - "weight": 436, + "weight": 438, "cookies": false, "type": "", "deprecated": false, @@ -21406,7 +21763,7 @@ "tags": [ "tokens" ], - "description": "Create a new token. A token is linked to a file or a bucket and manages permissions for those file(s). Token can be passed as a header or request get parameter.", + "description": "Create a new token. A token is linked to a file. Token can be passed as a header or request get parameter.", "responses": { "201": { "description": "ResourceToken", @@ -21422,12 +21779,12 @@ "x-appwrite": { "method": "createFileToken", "group": "files", - "weight": 433, + "weight": 436, "cookies": false, "type": "", "deprecated": false, "demo": "tokens\/create-file-token.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new token. A token is linked to a file or a bucket and manages permissions for those file(s). Token can be passed as a header or request get parameter.", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new token. A token is linked to a file. Token can be passed as a header or request get parameter.", "rate-limit": 60, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -21484,14 +21841,6 @@ "description": "Token expiry date", "x-example": null, "x-nullable": true - }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - } } } } @@ -21500,284 +21849,6 @@ } } }, - "\/tokens\/{tokenId}": { - "get": { - "summary": "Get token", - "operationId": "tokensGet", - "tags": [ - "tokens" - ], - "description": "Get a token by its unique ID.", - "responses": { - "200": { - "description": "ResourceToken", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/resourceToken" - } - } - } - } - }, - "x-appwrite": { - "method": "get", - "group": "tokens", - "weight": 434, - "cookies": false, - "type": "", - "deprecated": false, - "demo": "tokens\/get.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterGet a token by its unique ID.", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", - "platforms": [ - "client", - "server", - "server" - ], - "packaging": false, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "tokenId", - "description": "Token ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update token", - "operationId": "tokensUpdate", - "tags": [ - "tokens" - ], - "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date or permissions.", - "responses": { - "200": { - "description": "ResourceToken", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/resourceToken" - } - } - } - } - }, - "x-appwrite": { - "method": "update", - "group": "tokens", - "weight": 437, - "cookies": false, - "type": "", - "deprecated": false, - "demo": "tokens\/update.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterUpdate a token by its unique ID. Use this endpoint to update a token's expiry date or permissions.", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "tokens.write", - "platforms": [ - "client", - "server", - "server" - ], - "packaging": false, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "tokenId", - "description": "Token unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "expire": { - "type": "string", - "description": "File token expiry date", - "x-example": null, - "x-nullable": true - }, - "permissions": { - "type": "array", - "description": "An array of permission string. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - } - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete token", - "operationId": "tokensDelete", - "tags": [ - "tokens" - ], - "description": "Delete a token by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "x-appwrite": { - "method": "delete", - "group": "tokens", - "weight": 438, - "cookies": false, - "type": "", - "deprecated": false, - "demo": "tokens\/delete.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterDelete a token by its unique ID.", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "tokens.write", - "platforms": [ - "client", - "server", - "server" - ], - "packaging": false, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "tokenId", - "description": "Token ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } - ] - } - }, - "\/tokens\/{tokenId}\/jwt": { - "get": { - "summary": "Get token as JWT", - "operationId": "tokensGetJWT", - "tags": [ - "tokens" - ], - "description": "Get a JWT based token by its unique ID. You can use the JWT to authenticate on behalf of the user.", - "responses": { - "200": { - "description": "JWT", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/jwt" - } - } - } - } - }, - "x-appwrite": { - "method": "getJWT", - "group": "tokens", - "weight": 435, - "cookies": false, - "type": "", - "deprecated": false, - "demo": "tokens\/get-j-w-t.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterGet a JWT based token by its unique ID. You can use the JWT to authenticate on behalf of the user.", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", - "platforms": [ - "client", - "server", - "server" - ], - "packaging": false, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "tokenId", - "description": "File token ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } - ] - } - }, "\/users": { "get": { "summary": "List users", @@ -21801,7 +21872,7 @@ "x-appwrite": { "method": "list", "group": "users", - "weight": 241, + "weight": 244, "cookies": false, "type": "", "deprecated": false, @@ -21875,7 +21946,7 @@ "x-appwrite": { "method": "create", "group": "users", - "weight": 232, + "weight": 235, "cookies": false, "type": "", "deprecated": false, @@ -21964,7 +22035,7 @@ "x-appwrite": { "method": "createArgon2User", "group": "users", - "weight": 235, + "weight": 238, "cookies": false, "type": "", "deprecated": false, @@ -22050,7 +22121,7 @@ "x-appwrite": { "method": "createBcryptUser", "group": "users", - "weight": 233, + "weight": 236, "cookies": false, "type": "", "deprecated": false, @@ -22136,7 +22207,7 @@ "x-appwrite": { "method": "listIdentities", "group": "identities", - "weight": 249, + "weight": 252, "cookies": false, "type": "", "deprecated": false, @@ -22205,7 +22276,7 @@ "x-appwrite": { "method": "deleteIdentity", "group": "identities", - "weight": 272, + "weight": 275, "cookies": false, "type": "", "deprecated": false, @@ -22267,7 +22338,7 @@ "x-appwrite": { "method": "createMD5User", "group": "users", - "weight": 234, + "weight": 237, "cookies": false, "type": "", "deprecated": false, @@ -22353,7 +22424,7 @@ "x-appwrite": { "method": "createPHPassUser", "group": "users", - "weight": 237, + "weight": 240, "cookies": false, "type": "", "deprecated": false, @@ -22439,7 +22510,7 @@ "x-appwrite": { "method": "createScryptUser", "group": "users", - "weight": 238, + "weight": 241, "cookies": false, "type": "", "deprecated": false, @@ -22555,7 +22626,7 @@ "x-appwrite": { "method": "createScryptModifiedUser", "group": "users", - "weight": 239, + "weight": 242, "cookies": false, "type": "", "deprecated": false, @@ -22659,7 +22730,7 @@ "x-appwrite": { "method": "createSHAUser", "group": "users", - "weight": 236, + "weight": 239, "cookies": false, "type": "", "deprecated": false, @@ -22765,7 +22836,7 @@ "x-appwrite": { "method": "get", "group": "users", - "weight": 242, + "weight": 245, "cookies": false, "type": "", "deprecated": false, @@ -22818,7 +22889,7 @@ "x-appwrite": { "method": "delete", "group": "users", - "weight": 270, + "weight": 273, "cookies": false, "type": "", "deprecated": false, @@ -22880,7 +22951,7 @@ "x-appwrite": { "method": "updateEmail", "group": "users", - "weight": 255, + "weight": 258, "cookies": false, "type": "", "deprecated": false, @@ -22961,7 +23032,7 @@ "x-appwrite": { "method": "createJWT", "group": "sessions", - "weight": 273, + "weight": 276, "cookies": false, "type": "", "deprecated": false, @@ -23044,7 +23115,7 @@ "x-appwrite": { "method": "updateLabels", "group": "users", - "weight": 251, + "weight": 254, "cookies": false, "type": "", "deprecated": false, @@ -23128,7 +23199,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 247, + "weight": 250, "cookies": false, "type": "", "deprecated": false, @@ -23203,7 +23274,7 @@ "x-appwrite": { "method": "listMemberships", "group": "memberships", - "weight": 246, + "weight": 249, "cookies": false, "type": "", "deprecated": false, @@ -23289,7 +23360,7 @@ "x-appwrite": { "method": "updateMfa", "group": "users", - "weight": 260, + "weight": 263, "cookies": false, "type": "", "deprecated": false, @@ -23363,7 +23434,7 @@ "x-appwrite": { "method": "deleteMfaAuthenticator", "group": "mfa", - "weight": 265, + "weight": 268, "cookies": false, "type": "", "deprecated": false, @@ -23440,7 +23511,7 @@ "x-appwrite": { "method": "listMfaFactors", "group": "mfa", - "weight": 261, + "weight": 264, "cookies": false, "type": "", "deprecated": false, @@ -23502,7 +23573,7 @@ "x-appwrite": { "method": "getMfaRecoveryCodes", "group": "mfa", - "weight": 262, + "weight": 265, "cookies": false, "type": "", "deprecated": false, @@ -23562,7 +23633,7 @@ "x-appwrite": { "method": "updateMfaRecoveryCodes", "group": "mfa", - "weight": 264, + "weight": 267, "cookies": false, "type": "", "deprecated": false, @@ -23622,7 +23693,7 @@ "x-appwrite": { "method": "createMfaRecoveryCodes", "group": "mfa", - "weight": 263, + "weight": 266, "cookies": false, "type": "", "deprecated": false, @@ -23684,7 +23755,7 @@ "x-appwrite": { "method": "updateName", "group": "users", - "weight": 253, + "weight": 256, "cookies": false, "type": "", "deprecated": false, @@ -23765,7 +23836,7 @@ "x-appwrite": { "method": "updatePassword", "group": "users", - "weight": 254, + "weight": 257, "cookies": false, "type": "", "deprecated": false, @@ -23846,7 +23917,7 @@ "x-appwrite": { "method": "updatePhone", "group": "users", - "weight": 256, + "weight": 259, "cookies": false, "type": "", "deprecated": false, @@ -23927,7 +23998,7 @@ "x-appwrite": { "method": "getPrefs", "group": "users", - "weight": 243, + "weight": 246, "cookies": false, "type": "", "deprecated": false, @@ -23987,7 +24058,7 @@ "x-appwrite": { "method": "updatePrefs", "group": "users", - "weight": 258, + "weight": 261, "cookies": false, "type": "", "deprecated": false, @@ -24068,7 +24139,7 @@ "x-appwrite": { "method": "listSessions", "group": "sessions", - "weight": 245, + "weight": 248, "cookies": false, "type": "", "deprecated": false, @@ -24128,7 +24199,7 @@ "x-appwrite": { "method": "createSession", "group": "sessions", - "weight": 266, + "weight": 269, "cookies": false, "type": "", "deprecated": false, @@ -24181,7 +24252,7 @@ "x-appwrite": { "method": "deleteSessions", "group": "sessions", - "weight": 269, + "weight": 272, "cookies": false, "type": "", "deprecated": false, @@ -24236,7 +24307,7 @@ "x-appwrite": { "method": "deleteSession", "group": "sessions", - "weight": 268, + "weight": 271, "cookies": false, "type": "", "deprecated": false, @@ -24308,7 +24379,7 @@ "x-appwrite": { "method": "updateStatus", "group": "users", - "weight": 250, + "weight": 253, "cookies": false, "type": "", "deprecated": false, @@ -24389,7 +24460,7 @@ "x-appwrite": { "method": "listTargets", "group": "targets", - "weight": 248, + "weight": 251, "cookies": false, "type": "", "deprecated": false, @@ -24463,7 +24534,7 @@ "x-appwrite": { "method": "createTarget", "group": "targets", - "weight": 240, + "weight": 243, "cookies": false, "type": "", "deprecated": false, @@ -24574,7 +24645,7 @@ "x-appwrite": { "method": "getTarget", "group": "targets", - "weight": 244, + "weight": 247, "cookies": false, "type": "", "deprecated": false, @@ -24645,7 +24716,7 @@ "x-appwrite": { "method": "updateTarget", "group": "targets", - "weight": 259, + "weight": 262, "cookies": false, "type": "", "deprecated": false, @@ -24735,7 +24806,7 @@ "x-appwrite": { "method": "deleteTarget", "group": "targets", - "weight": 271, + "weight": 274, "cookies": false, "type": "", "deprecated": false, @@ -24808,7 +24879,7 @@ "x-appwrite": { "method": "createToken", "group": "sessions", - "weight": 267, + "weight": 270, "cookies": false, "type": "", "deprecated": false, @@ -24891,7 +24962,7 @@ "x-appwrite": { "method": "updateEmailVerification", "group": "users", - "weight": 257, + "weight": 260, "cookies": false, "type": "", "deprecated": false, @@ -24972,7 +25043,7 @@ "x-appwrite": { "method": "updatePhoneVerification", "group": "users", - "weight": 252, + "weight": 255, "cookies": false, "type": "", "deprecated": false, @@ -25034,90 +25105,71 @@ "tags": [ { "name": "account", - "description": "The Account service allows you to authenticate and manage a user account.", - "x-globalAttributes": [] + "description": "The Account service allows you to authenticate and manage a user account." }, { "name": "avatars", - "description": "The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars.", - "x-globalAttributes": [] + "description": "The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars." }, { "name": "databases", - "description": "The Databases service allows you to create structured collections of documents, query and filter lists of documents", - "x-globalAttributes": [ - "databaseId" - ] + "description": "The Databases service allows you to create structured collections of documents, query and filter lists of documents" }, { "name": "locale", - "description": "The Locale service allows you to customize your app based on your users' location.", - "x-globalAttributes": [] + "description": "The Locale service allows you to customize your app based on your users' location." }, { "name": "health", - "description": "The Health service allows you to both validate and monitor your Appwrite server's health.", - "x-globalAttributes": [] + "description": "The Health service allows you to both validate and monitor your Appwrite server's health." }, { "name": "projects", - "description": "The Project service allows you to manage all the projects in your Appwrite server.", - "x-globalAttributes": [] + "description": "The Project service allows you to manage all the projects in your Appwrite server." }, { "name": "project", - "description": "The Project service allows you to manage all the projects in your Appwrite server.", - "x-globalAttributes": [] + "description": "The Project service allows you to manage all the projects in your Appwrite server." }, { "name": "storage", - "description": "The Storage service allows you to manage your project files.", - "x-globalAttributes": [] + "description": "The Storage service allows you to manage your project files." }, { "name": "teams", - "description": "The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources", - "x-globalAttributes": [] + "description": "The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources" }, { "name": "users", - "description": "The Users service allows you to manage your project users.", - "x-globalAttributes": [] + "description": "The Users service allows you to manage your project users." }, { "name": "sites", - "description": "The Sites Service allows you view, create and manage your web applications.", - "x-globalAttributes": [] + "description": "The Sites Service allows you view, create and manage your web applications." }, { "name": "functions", - "description": "The Functions Service allows you view, create and manage your Cloud Functions.", - "x-globalAttributes": [] + "description": "The Functions Service allows you view, create and manage your Cloud Functions." }, { "name": "proxy", - "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration.", - "x-globalAttributes": [] + "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration." }, { "name": "graphql", - "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL.", - "x-globalAttributes": [] + "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL." }, { "name": "console", - "description": "The Console service allows you to interact with console relevant informations.", - "x-globalAttributes": [] + "description": "The Console service allows you to interact with console relevant informations." }, { "name": "migrations", - "description": "The Migrations service allows you to migrate third-party data to your Appwrite project.", - "x-globalAttributes": [] + "description": "The Migrations service allows you to migrate third-party data to your Appwrite project." }, { "name": "messaging", - "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.).", - "x-globalAttributes": [] + "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.)." } ], "components": { @@ -28004,16 +28056,6 @@ "description": "Token creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "$permissions": { - "type": "array", - "description": "Token permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "x-example": [ - "read(\"any\")" - ] - }, "resourceId": { "type": "string", "description": "Resource ID.", @@ -28029,6 +28071,11 @@ "description": "Token expiration date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, + "secret": { + "type": "string", + "description": "JWT encoded string.", + "x-example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + }, "accessedAt": { "type": "string", "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", @@ -28038,10 +28085,10 @@ "required": [ "$id", "$createdAt", - "$permissions", "resourceId", "resourceType", "expire", + "secret", "accessedAt" ] }, diff --git a/app/config/specs/swagger2-latest-client.json b/app/config/specs/swagger2-latest-client.json index e24eb83999..5bb98a8c0f 100644 --- a/app/config/specs/swagger2-latest-client.json +++ b/app/config/specs/swagger2-latest-client.json @@ -2765,7 +2765,10 @@ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-token-email.md", "rate-limit": 10, "rate-time": 3600, - "rate-key": "url:{url},email:{param-email}", + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], "scope": "sessions.write", "platforms": [ "server", @@ -4571,7 +4574,7 @@ "tags": [ "databases" ], - "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.\n", + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", "responses": { "201": { "description": "Document", @@ -4599,6 +4602,51 @@ "server" ], "packaging": false, + "methods": [ + { + "name": "createDocument", + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console." + }, + { + "name": "createDocuments", + "parameters": [ + "databaseId", + "collectionId", + "documents" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console." + } + ], "auth": { "Project": [] } @@ -4636,13 +4684,13 @@ "documentId": { "type": "string", "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, + "default": "", "x-example": "" }, "data": { "type": "object", "description": "Document data as JSON object.", - "default": {}, + "default": [], "x-example": "{}" }, "permissions": { @@ -4653,12 +4701,17 @@ "items": { "type": "string" } + }, + "documents": { + "type": "array", + "description": "Array of documents data as JSON objects.", + "default": [], + "x-example": null, + "items": { + "type": "object" + } } - }, - "required": [ - "documentId", - "data" - ] + } } } ] @@ -4874,7 +4927,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 114, + "weight": 116, "cookies": false, "type": "", "deprecated": false, @@ -4952,7 +5005,7 @@ "x-appwrite": { "method": "listExecutions", "group": "executions", - "weight": 388, + "weight": 391, "cookies": false, "type": "", "deprecated": false, @@ -5026,7 +5079,7 @@ "x-appwrite": { "method": "createExecution", "group": "executions", - "weight": 386, + "weight": 389, "cookies": false, "type": "", "deprecated": false, @@ -5143,7 +5196,7 @@ "x-appwrite": { "method": "getExecution", "group": "executions", - "weight": 387, + "weight": 390, "cookies": false, "type": "", "deprecated": false, @@ -5215,7 +5268,7 @@ "x-appwrite": { "method": "query", "group": "graphql", - "weight": 302, + "weight": 305, "cookies": false, "type": "graphql", "deprecated": false, @@ -5289,7 +5342,7 @@ "x-appwrite": { "method": "mutation", "group": "graphql", - "weight": 301, + "weight": 304, "cookies": false, "type": "graphql", "deprecated": false, @@ -5361,7 +5414,7 @@ "x-appwrite": { "method": "get", "group": null, - "weight": 118, + "weight": 121, "cookies": false, "type": "", "deprecated": false, @@ -5413,7 +5466,7 @@ "x-appwrite": { "method": "listCodes", "group": null, - "weight": 119, + "weight": 122, "cookies": false, "type": "", "deprecated": false, @@ -5465,7 +5518,7 @@ "x-appwrite": { "method": "listContinents", "group": null, - "weight": 123, + "weight": 126, "cookies": false, "type": "", "deprecated": false, @@ -5517,7 +5570,7 @@ "x-appwrite": { "method": "listCountries", "group": null, - "weight": 120, + "weight": 123, "cookies": false, "type": "", "deprecated": false, @@ -5569,7 +5622,7 @@ "x-appwrite": { "method": "listCountriesEU", "group": null, - "weight": 121, + "weight": 124, "cookies": false, "type": "", "deprecated": false, @@ -5621,7 +5674,7 @@ "x-appwrite": { "method": "listCountriesPhones", "group": null, - "weight": 122, + "weight": 125, "cookies": false, "type": "", "deprecated": false, @@ -5673,7 +5726,7 @@ "x-appwrite": { "method": "listCurrencies", "group": null, - "weight": 124, + "weight": 127, "cookies": false, "type": "", "deprecated": false, @@ -5725,7 +5778,7 @@ "x-appwrite": { "method": "listLanguages", "group": null, - "weight": 125, + "weight": 128, "cookies": false, "type": "", "deprecated": false, @@ -5779,7 +5832,7 @@ "x-appwrite": { "method": "createSubscriber", "group": "subscribers", - "weight": 348, + "weight": 351, "cookies": false, "type": "", "deprecated": false, @@ -5864,7 +5917,7 @@ "x-appwrite": { "method": "deleteSubscriber", "group": "subscribers", - "weight": 352, + "weight": 355, "cookies": false, "type": "", "deprecated": false, @@ -5935,7 +5988,7 @@ "x-appwrite": { "method": "listFiles", "group": "files", - "weight": 208, + "weight": 211, "cookies": false, "type": "", "deprecated": false, @@ -6018,7 +6071,7 @@ "x-appwrite": { "method": "createFile", "group": "files", - "weight": 207, + "weight": 210, "cookies": false, "type": "upload", "deprecated": false, @@ -6108,7 +6161,7 @@ "x-appwrite": { "method": "getFile", "group": "files", - "weight": 209, + "weight": 212, "cookies": false, "type": "", "deprecated": false, @@ -6178,7 +6231,7 @@ "x-appwrite": { "method": "updateFile", "group": "files", - "weight": 214, + "weight": 217, "cookies": false, "type": "", "deprecated": false, @@ -6267,7 +6320,7 @@ "x-appwrite": { "method": "deleteFile", "group": "files", - "weight": 215, + "weight": 218, "cookies": false, "type": "", "deprecated": false, @@ -6337,7 +6390,7 @@ "x-appwrite": { "method": "getFileDownload", "group": "files", - "weight": 211, + "weight": 214, "cookies": false, "type": "location", "deprecated": false, @@ -6380,6 +6433,15 @@ "type": "string", "x-example": "", "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "type": "string", + "x-example": "", + "default": "", + "in": "query" } ] } @@ -6407,7 +6469,7 @@ "x-appwrite": { "method": "getFilePreview", "group": "files", - "weight": 210, + "weight": 213, "cookies": false, "type": "location", "deprecated": false, @@ -6578,6 +6640,15 @@ "x-enum-keys": [], "default": "", "in": "query" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "type": "string", + "x-example": "", + "default": "", + "in": "query" } ] } @@ -6605,7 +6676,7 @@ "x-appwrite": { "method": "getFileView", "group": "files", - "weight": 212, + "weight": 215, "cookies": false, "type": "location", "deprecated": false, @@ -6648,6 +6719,15 @@ "type": "string", "x-example": "", "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "type": "string", + "x-example": "", + "default": "", + "in": "query" } ] } @@ -6675,7 +6755,7 @@ "x-appwrite": { "method": "list", "group": "teams", - "weight": 219, + "weight": 222, "cookies": false, "type": "", "deprecated": false, @@ -6750,7 +6830,7 @@ "x-appwrite": { "method": "create", "group": "teams", - "weight": 218, + "weight": 221, "cookies": false, "type": "", "deprecated": false, @@ -6840,7 +6920,7 @@ "x-appwrite": { "method": "get", "group": "teams", - "weight": 220, + "weight": 223, "cookies": false, "type": "", "deprecated": false, @@ -6902,7 +6982,7 @@ "x-appwrite": { "method": "updateName", "group": "teams", - "weight": 222, + "weight": 225, "cookies": false, "type": "", "deprecated": false, @@ -6977,7 +7057,7 @@ "x-appwrite": { "method": "delete", "group": "teams", - "weight": 224, + "weight": 227, "cookies": false, "type": "", "deprecated": false, @@ -7039,7 +7119,7 @@ "x-appwrite": { "method": "listMemberships", "group": "memberships", - "weight": 226, + "weight": 229, "cookies": false, "type": "", "deprecated": false, @@ -7122,7 +7202,7 @@ "x-appwrite": { "method": "createMembership", "group": "memberships", - "weight": 225, + "weight": 228, "cookies": false, "type": "", "deprecated": false, @@ -7235,7 +7315,7 @@ "x-appwrite": { "method": "getMembership", "group": "memberships", - "weight": 227, + "weight": 230, "cookies": false, "type": "", "deprecated": false, @@ -7305,7 +7385,7 @@ "x-appwrite": { "method": "updateMembership", "group": "memberships", - "weight": 228, + "weight": 231, "cookies": false, "type": "", "deprecated": false, @@ -7391,7 +7471,7 @@ "x-appwrite": { "method": "deleteMembership", "group": "memberships", - "weight": 230, + "weight": 233, "cookies": false, "type": "", "deprecated": false, @@ -7463,7 +7543,7 @@ "x-appwrite": { "method": "updateMembershipStatus", "group": "memberships", - "weight": 229, + "weight": 232, "cookies": false, "type": "", "deprecated": false, @@ -7557,7 +7637,7 @@ "x-appwrite": { "method": "getPrefs", "group": "teams", - "weight": 221, + "weight": 224, "cookies": false, "type": "", "deprecated": false, @@ -7618,7 +7698,7 @@ "x-appwrite": { "method": "updatePrefs", "group": "teams", - "weight": 223, + "weight": 226, "cookies": false, "type": "", "deprecated": false, @@ -7697,7 +7777,7 @@ "x-appwrite": { "method": "list", "group": "files", - "weight": 436, + "weight": 438, "cookies": false, "type": "", "deprecated": false, @@ -7767,7 +7847,7 @@ "tags": [ "tokens" ], - "description": "Create a new token. A token is linked to a file or a bucket and manages permissions for those file(s). Token can be passed as a header or request get parameter.", + "description": "Create a new token. A token is linked to a file. Token can be passed as a header or request get parameter.", "responses": { "201": { "description": "ResourceToken", @@ -7779,12 +7859,12 @@ "x-appwrite": { "method": "createFileToken", "group": "files", - "weight": 433, + "weight": 436, "cookies": false, "type": "", "deprecated": false, "demo": "tokens\/create-file-token.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new token. A token is linked to a file or a bucket and manages permissions for those file(s). Token can be passed as a header or request get parameter.", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new token. A token is linked to a file. Token can be passed as a header or request get parameter.", "rate-limit": 60, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -7835,378 +7915,82 @@ "default": null, "x-example": null, "x-nullable": true - }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": [], - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - } } } } } ] } - }, - "\/tokens\/{tokenId}": { - "get": { - "summary": "Get token", - "operationId": "tokensGet", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "tokens" - ], - "description": "Get a token by its unique ID.", - "responses": { - "200": { - "description": "ResourceToken", - "schema": { - "$ref": "#\/definitions\/resourceToken" - } - } - }, - "x-appwrite": { - "method": "get", - "group": "tokens", - "weight": 434, - "cookies": false, - "type": "", - "deprecated": false, - "demo": "tokens\/get.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterGet a token by its unique ID.", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", - "platforms": [ - "client", - "server", - "server" - ], - "packaging": false, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "tokenId", - "description": "Token ID.", - "required": true, - "type": "string", - "x-example": "", - "in": "path" - } - ] - }, - "patch": { - "summary": "Update token", - "operationId": "tokensUpdate", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "tokens" - ], - "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date or permissions.", - "responses": { - "200": { - "description": "ResourceToken", - "schema": { - "$ref": "#\/definitions\/resourceToken" - } - } - }, - "x-appwrite": { - "method": "update", - "group": "tokens", - "weight": 437, - "cookies": false, - "type": "", - "deprecated": false, - "demo": "tokens\/update.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterUpdate a token by its unique ID. Use this endpoint to update a token's expiry date or permissions.", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "tokens.write", - "platforms": [ - "client", - "server", - "server" - ], - "packaging": false, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "tokenId", - "description": "Token unique ID.", - "required": true, - "type": "string", - "x-example": "", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "expire": { - "type": "string", - "description": "File token expiry date", - "default": null, - "x-example": null, - "x-nullable": true - }, - "permissions": { - "type": "array", - "description": "An array of permission string. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": null, - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - } - } - } - } - } - ] - }, - "delete": { - "summary": "Delete token", - "operationId": "tokensDelete", - "consumes": [ - "application\/json" - ], - "produces": [], - "tags": [ - "tokens" - ], - "description": "Delete a token by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "x-appwrite": { - "method": "delete", - "group": "tokens", - "weight": 438, - "cookies": false, - "type": "", - "deprecated": false, - "demo": "tokens\/delete.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterDelete a token by its unique ID.", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "tokens.write", - "platforms": [ - "client", - "server", - "server" - ], - "packaging": false, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "tokenId", - "description": "Token ID.", - "required": true, - "type": "string", - "x-example": "", - "in": "path" - } - ] - } - }, - "\/tokens\/{tokenId}\/jwt": { - "get": { - "summary": "Get token as JWT", - "operationId": "tokensGetJWT", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "tokens" - ], - "description": "Get a JWT based token by its unique ID. You can use the JWT to authenticate on behalf of the user.", - "responses": { - "200": { - "description": "JWT", - "schema": { - "$ref": "#\/definitions\/jwt" - } - } - }, - "x-appwrite": { - "method": "getJWT", - "group": "tokens", - "weight": 435, - "cookies": false, - "type": "", - "deprecated": false, - "demo": "tokens\/get-j-w-t.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterGet a JWT based token by its unique ID. You can use the JWT to authenticate on behalf of the user.", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", - "platforms": [ - "client", - "server", - "server" - ], - "packaging": false, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "tokenId", - "description": "File token ID.", - "required": true, - "type": "string", - "x-example": "", - "in": "path" - } - ] - } } }, "tags": [ { "name": "account", - "description": "The Account service allows you to authenticate and manage a user account.", - "x-globalAttributes": [] + "description": "The Account service allows you to authenticate and manage a user account." }, { "name": "avatars", - "description": "The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars.", - "x-globalAttributes": [] + "description": "The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars." }, { "name": "databases", - "description": "The Databases service allows you to create structured collections of documents, query and filter lists of documents", - "x-globalAttributes": [ - "databaseId" - ] + "description": "The Databases service allows you to create structured collections of documents, query and filter lists of documents" }, { "name": "locale", - "description": "The Locale service allows you to customize your app based on your users' location.", - "x-globalAttributes": [] + "description": "The Locale service allows you to customize your app based on your users' location." }, { "name": "health", - "description": "The Health service allows you to both validate and monitor your Appwrite server's health.", - "x-globalAttributes": [] + "description": "The Health service allows you to both validate and monitor your Appwrite server's health." }, { "name": "projects", - "description": "The Project service allows you to manage all the projects in your Appwrite server.", - "x-globalAttributes": [] + "description": "The Project service allows you to manage all the projects in your Appwrite server." }, { "name": "project", - "description": "The Project service allows you to manage all the projects in your Appwrite server.", - "x-globalAttributes": [] + "description": "The Project service allows you to manage all the projects in your Appwrite server." }, { "name": "storage", - "description": "The Storage service allows you to manage your project files.", - "x-globalAttributes": [] + "description": "The Storage service allows you to manage your project files." }, { "name": "teams", - "description": "The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources", - "x-globalAttributes": [] + "description": "The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources" }, { "name": "users", - "description": "The Users service allows you to manage your project users.", - "x-globalAttributes": [] + "description": "The Users service allows you to manage your project users." }, { "name": "sites", - "description": "The Sites Service allows you view, create and manage your web applications.", - "x-globalAttributes": [] + "description": "The Sites Service allows you view, create and manage your web applications." }, { "name": "functions", - "description": "The Functions Service allows you view, create and manage your Cloud Functions.", - "x-globalAttributes": [] + "description": "The Functions Service allows you view, create and manage your Cloud Functions." }, { "name": "proxy", - "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration.", - "x-globalAttributes": [] + "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration." }, { "name": "graphql", - "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL.", - "x-globalAttributes": [] + "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL." }, { "name": "console", - "description": "The Console service allows you to interact with console relevant informations.", - "x-globalAttributes": [] + "description": "The Console service allows you to interact with console relevant informations." }, { "name": "migrations", - "description": "The Migrations service allows you to migrate third-party data to your Appwrite project.", - "x-globalAttributes": [] + "description": "The Migrations service allows you to migrate third-party data to your Appwrite project." }, { "name": "messaging", - "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.).", - "x-globalAttributes": [] + "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.)." } ], "definitions": { @@ -9586,16 +9370,6 @@ "description": "Token creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "$permissions": { - "type": "array", - "description": "Token permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "x-example": [ - "read(\"any\")" - ] - }, "resourceId": { "type": "string", "description": "Resource ID.", @@ -9611,6 +9385,11 @@ "description": "Token expiration date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, + "secret": { + "type": "string", + "description": "JWT encoded string.", + "x-example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + }, "accessedAt": { "type": "string", "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", @@ -9620,10 +9399,10 @@ "required": [ "$id", "$createdAt", - "$permissions", "resourceId", "resourceType", "expire", + "secret", "accessedAt" ] }, diff --git a/app/config/specs/swagger2-latest-console.json b/app/config/specs/swagger2-latest-console.json index 3fd625b154..bf430b6e63 100644 --- a/app/config/specs/swagger2-latest-console.json +++ b/app/config/specs/swagger2-latest-console.json @@ -2790,7 +2790,10 @@ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-token-email.md", "rate-limit": 10, "rate-time": 3600, - "rate-key": "url:{url},email:{param-email}", + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], "scope": "sessions.write", "platforms": [ "server", @@ -4524,7 +4527,7 @@ "x-appwrite": { "method": "chat", "group": "console", - "weight": 304, + "weight": 307, "cookies": false, "type": "", "deprecated": false, @@ -4587,7 +4590,7 @@ "x-appwrite": { "method": "getResource", "group": null, - "weight": 428, + "weight": 431, "cookies": false, "type": "", "deprecated": false, @@ -4658,7 +4661,7 @@ "x-appwrite": { "method": "variables", "group": "console", - "weight": 303, + "weight": 306, "cookies": false, "type": "", "deprecated": false, @@ -4860,7 +4863,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 115, + "weight": 118, "cookies": false, "type": "", "deprecated": false, @@ -8119,7 +8122,7 @@ "tags": [ "databases" ], - "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.\n", + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", "responses": { "201": { "description": "Document", @@ -8147,6 +8150,51 @@ "server" ], "packaging": false, + "methods": [ + { + "name": "createDocument", + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console." + }, + { + "name": "createDocuments", + "parameters": [ + "databaseId", + "collectionId", + "documents" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console." + } + ], "auth": { "Project": [] } @@ -8184,13 +8232,13 @@ "documentId": { "type": "string", "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, + "default": "", "x-example": "" }, "data": { "type": "object", "description": "Document data as JSON object.", - "default": {}, + "default": [], "x-example": "{}" }, "permissions": { @@ -8201,12 +8249,278 @@ "items": { "type": "string" } + }, + "documents": { + "type": "array", + "description": "Array of documents data as JSON objects.", + "default": [], + "x-example": null, + "items": { + "type": "object" + } } - }, - "required": [ - "documentId", - "data" - ] + } + } + } + ] + }, + "put": { + "summary": "Create or update documents", + "operationId": "databasesUpsertDocuments", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "databases" + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.\n", + "responses": { + "200": { + "description": "Documents List", + "schema": { + "$ref": "#\/definitions\/documentList" + } + } + }, + "x-appwrite": { + "method": "upsertDocuments", + "group": "documents", + "weight": 115, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "databases\/upsert-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "server" + ], + "packaging": false, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "documents": { + "type": "array", + "description": "Array of document data as JSON objects. May contain partial documents.", + "default": [], + "x-example": null, + "items": { + "type": "object" + } + } + } + } + } + ] + }, + "patch": { + "summary": "Update documents", + "operationId": "databasesUpdateDocuments", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "databases" + ], + "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", + "responses": { + "200": { + "description": "Documents List", + "schema": { + "$ref": "#\/definitions\/documentList" + } + } + }, + "x-appwrite": { + "method": "updateDocuments", + "group": "documents", + "weight": 114, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "databases\/update-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "server" + ], + "packaging": false, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "default": [], + "x-example": "{}" + }, + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + } + } + } + } + ] + }, + "delete": { + "summary": "Delete documents", + "operationId": "databasesDeleteDocuments", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "databases" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "Documents List", + "schema": { + "$ref": "#\/definitions\/documentList" + } + } + }, + "x-appwrite": { + "method": "deleteDocuments", + "group": "documents", + "weight": 117, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "databases\/delete-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "server" + ], + "packaging": false, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + } + } } } ] @@ -8422,7 +8736,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 114, + "weight": 116, "cookies": false, "type": "", "deprecated": false, @@ -9004,7 +9318,7 @@ "x-appwrite": { "method": "getCollectionUsage", "group": null, - "weight": 117, + "weight": 120, "cookies": false, "type": "", "deprecated": false, @@ -9160,7 +9474,7 @@ "x-appwrite": { "method": "getDatabaseUsage", "group": null, - "weight": 116, + "weight": 119, "cookies": false, "type": "", "deprecated": false, @@ -9238,7 +9552,7 @@ "x-appwrite": { "method": "list", "group": "functions", - "weight": 372, + "weight": 375, "cookies": false, "type": "", "deprecated": false, @@ -9310,7 +9624,7 @@ "x-appwrite": { "method": "create", "group": "functions", - "weight": 369, + "weight": 372, "cookies": false, "type": "", "deprecated": false, @@ -9559,7 +9873,7 @@ "x-appwrite": { "method": "listRuntimes", "group": "runtimes", - "weight": 374, + "weight": 377, "cookies": false, "type": "", "deprecated": false, @@ -9608,7 +9922,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "runtimes", - "weight": 375, + "weight": 378, "cookies": false, "type": "", "deprecated": false, @@ -9658,7 +9972,7 @@ "x-appwrite": { "method": "listTemplates", "group": "templates", - "weight": 398, + "weight": 401, "cookies": false, "type": "", "deprecated": false, @@ -9752,7 +10066,7 @@ "x-appwrite": { "method": "getTemplate", "group": "templates", - "weight": 397, + "weight": 400, "cookies": false, "type": "", "deprecated": false, @@ -9810,7 +10124,7 @@ "x-appwrite": { "method": "listUsage", "group": null, - "weight": 391, + "weight": 394, "cookies": false, "type": "", "deprecated": false, @@ -9880,7 +10194,7 @@ "x-appwrite": { "method": "get", "group": "functions", - "weight": 370, + "weight": 373, "cookies": false, "type": "", "deprecated": false, @@ -9939,7 +10253,7 @@ "x-appwrite": { "method": "update", "group": "functions", - "weight": 371, + "weight": 374, "cookies": false, "type": "", "deprecated": false, @@ -10184,7 +10498,7 @@ "x-appwrite": { "method": "delete", "group": "functions", - "weight": 373, + "weight": 376, "cookies": false, "type": "", "deprecated": false, @@ -10245,7 +10559,7 @@ "x-appwrite": { "method": "updateFunctionDeployment", "group": "functions", - "weight": 378, + "weight": 381, "cookies": false, "type": "", "deprecated": false, @@ -10322,7 +10636,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 379, + "weight": 382, "cookies": false, "type": "", "deprecated": false, @@ -10402,7 +10716,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 376, + "weight": 379, "cookies": false, "type": "upload", "deprecated": false, @@ -10494,7 +10808,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 384, + "weight": 387, "cookies": false, "type": "", "deprecated": false, @@ -10579,7 +10893,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 381, + "weight": 384, "cookies": false, "type": "", "deprecated": false, @@ -10685,7 +10999,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 382, + "weight": 385, "cookies": false, "type": "", "deprecated": false, @@ -10781,7 +11095,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 377, + "weight": 380, "cookies": false, "type": "", "deprecated": false, @@ -10843,7 +11157,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 380, + "weight": 383, "cookies": false, "type": "", "deprecated": false, @@ -10910,7 +11224,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 383, + "weight": 386, "cookies": false, "type": "location", "deprecated": false, @@ -10996,7 +11310,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 385, + "weight": 388, "cookies": false, "type": "", "deprecated": false, @@ -11063,7 +11377,7 @@ "x-appwrite": { "method": "listExecutions", "group": "executions", - "weight": 388, + "weight": 391, "cookies": false, "type": "", "deprecated": false, @@ -11137,7 +11451,7 @@ "x-appwrite": { "method": "createExecution", "group": "executions", - "weight": 386, + "weight": 389, "cookies": false, "type": "", "deprecated": false, @@ -11254,7 +11568,7 @@ "x-appwrite": { "method": "getExecution", "group": "executions", - "weight": 387, + "weight": 390, "cookies": false, "type": "", "deprecated": false, @@ -11319,7 +11633,7 @@ "x-appwrite": { "method": "deleteExecution", "group": "executions", - "weight": 389, + "weight": 392, "cookies": false, "type": "", "deprecated": false, @@ -11386,7 +11700,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 390, + "weight": 393, "cookies": false, "type": "", "deprecated": false, @@ -11464,7 +11778,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 394, + "weight": 397, "cookies": false, "type": "", "deprecated": false, @@ -11523,7 +11837,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 392, + "weight": 395, "cookies": false, "type": "", "deprecated": false, @@ -11613,7 +11927,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 393, + "weight": 396, "cookies": false, "type": "", "deprecated": false, @@ -11680,7 +11994,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 395, + "weight": 398, "cookies": false, "type": "", "deprecated": false, @@ -11772,7 +12086,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 396, + "weight": 399, "cookies": false, "type": "", "deprecated": false, @@ -11841,7 +12155,7 @@ "x-appwrite": { "method": "query", "group": "graphql", - "weight": 302, + "weight": 305, "cookies": false, "type": "graphql", "deprecated": false, @@ -11915,7 +12229,7 @@ "x-appwrite": { "method": "mutation", "group": "graphql", - "weight": 301, + "weight": 304, "cookies": false, "type": "graphql", "deprecated": false, @@ -11987,7 +12301,7 @@ "x-appwrite": { "method": "get", "group": "health", - "weight": 126, + "weight": 129, "cookies": false, "type": "", "deprecated": false, @@ -12036,7 +12350,7 @@ "x-appwrite": { "method": "getAntivirus", "group": "health", - "weight": 147, + "weight": 150, "cookies": false, "type": "", "deprecated": false, @@ -12085,7 +12399,7 @@ "x-appwrite": { "method": "getCache", "group": "health", - "weight": 129, + "weight": 132, "cookies": false, "type": "", "deprecated": false, @@ -12134,7 +12448,7 @@ "x-appwrite": { "method": "getCertificate", "group": "health", - "weight": 134, + "weight": 137, "cookies": false, "type": "", "deprecated": false, @@ -12192,7 +12506,7 @@ "x-appwrite": { "method": "getDB", "group": "health", - "weight": 128, + "weight": 131, "cookies": false, "type": "", "deprecated": false, @@ -12241,7 +12555,7 @@ "x-appwrite": { "method": "getPubSub", "group": "health", - "weight": 130, + "weight": 133, "cookies": false, "type": "", "deprecated": false, @@ -12290,7 +12604,7 @@ "x-appwrite": { "method": "getQueueBuilds", "group": "queue", - "weight": 136, + "weight": 139, "cookies": false, "type": "", "deprecated": false, @@ -12350,7 +12664,7 @@ "x-appwrite": { "method": "getQueueCertificates", "group": "queue", - "weight": 135, + "weight": 138, "cookies": false, "type": "", "deprecated": false, @@ -12410,7 +12724,7 @@ "x-appwrite": { "method": "getQueueDatabases", "group": "queue", - "weight": 137, + "weight": 140, "cookies": false, "type": "", "deprecated": false, @@ -12479,7 +12793,7 @@ "x-appwrite": { "method": "getQueueDeletes", "group": "queue", - "weight": 138, + "weight": 141, "cookies": false, "type": "", "deprecated": false, @@ -12539,7 +12853,7 @@ "x-appwrite": { "method": "getFailedJobs", "group": "queue", - "weight": 148, + "weight": 151, "cookies": false, "type": "", "deprecated": false, @@ -12623,7 +12937,7 @@ "x-appwrite": { "method": "getQueueFunctions", "group": "queue", - "weight": 142, + "weight": 145, "cookies": false, "type": "", "deprecated": false, @@ -12683,7 +12997,7 @@ "x-appwrite": { "method": "getQueueLogs", "group": "queue", - "weight": 133, + "weight": 136, "cookies": false, "type": "", "deprecated": false, @@ -12743,7 +13057,7 @@ "x-appwrite": { "method": "getQueueMails", "group": "queue", - "weight": 139, + "weight": 142, "cookies": false, "type": "", "deprecated": false, @@ -12803,7 +13117,7 @@ "x-appwrite": { "method": "getQueueMessaging", "group": "queue", - "weight": 140, + "weight": 143, "cookies": false, "type": "", "deprecated": false, @@ -12863,7 +13177,7 @@ "x-appwrite": { "method": "getQueueMigrations", "group": "queue", - "weight": 141, + "weight": 144, "cookies": false, "type": "", "deprecated": false, @@ -12923,7 +13237,7 @@ "x-appwrite": { "method": "getQueueStatsResources", "group": "queue", - "weight": 143, + "weight": 146, "cookies": false, "type": "", "deprecated": false, @@ -12983,7 +13297,7 @@ "x-appwrite": { "method": "getQueueUsage", "group": "queue", - "weight": 144, + "weight": 147, "cookies": false, "type": "", "deprecated": false, @@ -13043,7 +13357,7 @@ "x-appwrite": { "method": "getQueueWebhooks", "group": "queue", - "weight": 132, + "weight": 135, "cookies": false, "type": "", "deprecated": false, @@ -13103,7 +13417,7 @@ "x-appwrite": { "method": "getStorage", "group": "storage", - "weight": 146, + "weight": 149, "cookies": false, "type": "", "deprecated": false, @@ -13152,7 +13466,7 @@ "x-appwrite": { "method": "getStorageLocal", "group": "storage", - "weight": 145, + "weight": 148, "cookies": false, "type": "", "deprecated": false, @@ -13201,7 +13515,7 @@ "x-appwrite": { "method": "getTime", "group": "health", - "weight": 131, + "weight": 134, "cookies": false, "type": "", "deprecated": false, @@ -13250,7 +13564,7 @@ "x-appwrite": { "method": "get", "group": null, - "weight": 118, + "weight": 121, "cookies": false, "type": "", "deprecated": false, @@ -13302,7 +13616,7 @@ "x-appwrite": { "method": "listCodes", "group": null, - "weight": 119, + "weight": 122, "cookies": false, "type": "", "deprecated": false, @@ -13354,7 +13668,7 @@ "x-appwrite": { "method": "listContinents", "group": null, - "weight": 123, + "weight": 126, "cookies": false, "type": "", "deprecated": false, @@ -13406,7 +13720,7 @@ "x-appwrite": { "method": "listCountries", "group": null, - "weight": 120, + "weight": 123, "cookies": false, "type": "", "deprecated": false, @@ -13458,7 +13772,7 @@ "x-appwrite": { "method": "listCountriesEU", "group": null, - "weight": 121, + "weight": 124, "cookies": false, "type": "", "deprecated": false, @@ -13510,7 +13824,7 @@ "x-appwrite": { "method": "listCountriesPhones", "group": null, - "weight": 122, + "weight": 125, "cookies": false, "type": "", "deprecated": false, @@ -13562,7 +13876,7 @@ "x-appwrite": { "method": "listCurrencies", "group": null, - "weight": 124, + "weight": 127, "cookies": false, "type": "", "deprecated": false, @@ -13614,7 +13928,7 @@ "x-appwrite": { "method": "listLanguages", "group": null, - "weight": 125, + "weight": 128, "cookies": false, "type": "", "deprecated": false, @@ -13666,7 +13980,7 @@ "x-appwrite": { "method": "listMessages", "group": "messages", - "weight": 356, + "weight": 359, "cookies": false, "type": "", "deprecated": false, @@ -13741,7 +14055,7 @@ "x-appwrite": { "method": "createEmail", "group": "messages", - "weight": 353, + "weight": 356, "cookies": false, "type": "", "deprecated": false, @@ -13899,7 +14213,7 @@ "x-appwrite": { "method": "updateEmail", "group": "messages", - "weight": 360, + "weight": 363, "cookies": false, "type": "", "deprecated": false, @@ -14054,7 +14368,7 @@ "x-appwrite": { "method": "createPush", "group": "messages", - "weight": 355, + "weight": 358, "cookies": false, "type": "", "deprecated": false, @@ -14249,7 +14563,7 @@ "x-appwrite": { "method": "updatePush", "group": "messages", - "weight": 362, + "weight": 365, "cookies": false, "type": "", "deprecated": false, @@ -14443,7 +14757,7 @@ "x-appwrite": { "method": "createSms", "group": "messages", - "weight": 354, + "weight": 357, "cookies": false, "type": "", "deprecated": false, @@ -14561,7 +14875,7 @@ "x-appwrite": { "method": "updateSms", "group": "messages", - "weight": 361, + "weight": 364, "cookies": false, "type": "", "deprecated": false, @@ -14675,7 +14989,7 @@ "x-appwrite": { "method": "getMessage", "group": "messages", - "weight": 359, + "weight": 362, "cookies": false, "type": "", "deprecated": false, @@ -14730,7 +15044,7 @@ "x-appwrite": { "method": "delete", "group": "messages", - "weight": 363, + "weight": 366, "cookies": false, "type": "", "deprecated": false, @@ -14790,7 +15104,7 @@ "x-appwrite": { "method": "listMessageLogs", "group": "logs", - "weight": 357, + "weight": 360, "cookies": false, "type": "", "deprecated": false, @@ -14862,7 +15176,7 @@ "x-appwrite": { "method": "listTargets", "group": "messages", - "weight": 358, + "weight": 361, "cookies": false, "type": "", "deprecated": false, @@ -14934,7 +15248,7 @@ "x-appwrite": { "method": "listProviders", "group": "providers", - "weight": 328, + "weight": 331, "cookies": false, "type": "", "deprecated": false, @@ -15009,7 +15323,7 @@ "x-appwrite": { "method": "createApnsProvider", "group": "providers", - "weight": 327, + "weight": 330, "cookies": false, "type": "", "deprecated": false, @@ -15124,7 +15438,7 @@ "x-appwrite": { "method": "updateApnsProvider", "group": "providers", - "weight": 340, + "weight": 343, "cookies": false, "type": "", "deprecated": false, @@ -15237,7 +15551,7 @@ "x-appwrite": { "method": "createFcmProvider", "group": "providers", - "weight": 326, + "weight": 329, "cookies": false, "type": "", "deprecated": false, @@ -15328,7 +15642,7 @@ "x-appwrite": { "method": "updateFcmProvider", "group": "providers", - "weight": 339, + "weight": 342, "cookies": false, "type": "", "deprecated": false, @@ -15417,7 +15731,7 @@ "x-appwrite": { "method": "createMailgunProvider", "group": "providers", - "weight": 318, + "weight": 321, "cookies": false, "type": "", "deprecated": false, @@ -15544,7 +15858,7 @@ "x-appwrite": { "method": "updateMailgunProvider", "group": "providers", - "weight": 331, + "weight": 334, "cookies": false, "type": "", "deprecated": false, @@ -15669,7 +15983,7 @@ "x-appwrite": { "method": "createMsg91Provider", "group": "providers", - "weight": 321, + "weight": 324, "cookies": false, "type": "", "deprecated": false, @@ -15772,7 +16086,7 @@ "x-appwrite": { "method": "updateMsg91Provider", "group": "providers", - "weight": 334, + "weight": 337, "cookies": false, "type": "", "deprecated": false, @@ -15873,7 +16187,7 @@ "x-appwrite": { "method": "createSendgridProvider", "group": "providers", - "weight": 319, + "weight": 322, "cookies": false, "type": "", "deprecated": false, @@ -15988,7 +16302,7 @@ "x-appwrite": { "method": "updateSendgridProvider", "group": "providers", - "weight": 332, + "weight": 335, "cookies": false, "type": "", "deprecated": false, @@ -16101,7 +16415,7 @@ "x-appwrite": { "method": "createSmtpProvider", "group": "providers", - "weight": 320, + "weight": 323, "cookies": false, "type": "", "deprecated": false, @@ -16260,7 +16574,7 @@ "x-appwrite": { "method": "updateSmtpProvider", "group": "providers", - "weight": 333, + "weight": 336, "cookies": false, "type": "", "deprecated": false, @@ -16416,7 +16730,7 @@ "x-appwrite": { "method": "createTelesignProvider", "group": "providers", - "weight": 322, + "weight": 325, "cookies": false, "type": "", "deprecated": false, @@ -16519,7 +16833,7 @@ "x-appwrite": { "method": "updateTelesignProvider", "group": "providers", - "weight": 335, + "weight": 338, "cookies": false, "type": "", "deprecated": false, @@ -16620,7 +16934,7 @@ "x-appwrite": { "method": "createTextmagicProvider", "group": "providers", - "weight": 323, + "weight": 326, "cookies": false, "type": "", "deprecated": false, @@ -16723,7 +17037,7 @@ "x-appwrite": { "method": "updateTextmagicProvider", "group": "providers", - "weight": 336, + "weight": 339, "cookies": false, "type": "", "deprecated": false, @@ -16824,7 +17138,7 @@ "x-appwrite": { "method": "createTwilioProvider", "group": "providers", - "weight": 324, + "weight": 327, "cookies": false, "type": "", "deprecated": false, @@ -16927,7 +17241,7 @@ "x-appwrite": { "method": "updateTwilioProvider", "group": "providers", - "weight": 337, + "weight": 340, "cookies": false, "type": "", "deprecated": false, @@ -17028,7 +17342,7 @@ "x-appwrite": { "method": "createVonageProvider", "group": "providers", - "weight": 325, + "weight": 328, "cookies": false, "type": "", "deprecated": false, @@ -17131,7 +17445,7 @@ "x-appwrite": { "method": "updateVonageProvider", "group": "providers", - "weight": 338, + "weight": 341, "cookies": false, "type": "", "deprecated": false, @@ -17230,7 +17544,7 @@ "x-appwrite": { "method": "getProvider", "group": "providers", - "weight": 330, + "weight": 333, "cookies": false, "type": "", "deprecated": false, @@ -17285,7 +17599,7 @@ "x-appwrite": { "method": "deleteProvider", "group": "providers", - "weight": 341, + "weight": 344, "cookies": false, "type": "", "deprecated": false, @@ -17345,7 +17659,7 @@ "x-appwrite": { "method": "listProviderLogs", "group": "providers", - "weight": 329, + "weight": 332, "cookies": false, "type": "", "deprecated": false, @@ -17417,7 +17731,7 @@ "x-appwrite": { "method": "listSubscriberLogs", "group": "subscribers", - "weight": 350, + "weight": 353, "cookies": false, "type": "", "deprecated": false, @@ -17489,7 +17803,7 @@ "x-appwrite": { "method": "listTopics", "group": "topics", - "weight": 343, + "weight": 346, "cookies": false, "type": "", "deprecated": false, @@ -17562,7 +17876,7 @@ "x-appwrite": { "method": "createTopic", "group": "topics", - "weight": 342, + "weight": 345, "cookies": false, "type": "", "deprecated": false, @@ -17650,7 +17964,7 @@ "x-appwrite": { "method": "getTopic", "group": "topics", - "weight": 345, + "weight": 348, "cookies": false, "type": "", "deprecated": false, @@ -17710,7 +18024,7 @@ "x-appwrite": { "method": "updateTopic", "group": "topics", - "weight": 346, + "weight": 349, "cookies": false, "type": "", "deprecated": false, @@ -17789,7 +18103,7 @@ "x-appwrite": { "method": "deleteTopic", "group": "topics", - "weight": 347, + "weight": 350, "cookies": false, "type": "", "deprecated": false, @@ -17849,7 +18163,7 @@ "x-appwrite": { "method": "listTopicLogs", "group": "topics", - "weight": 344, + "weight": 347, "cookies": false, "type": "", "deprecated": false, @@ -17921,7 +18235,7 @@ "x-appwrite": { "method": "listSubscribers", "group": "subscribers", - "weight": 349, + "weight": 352, "cookies": false, "type": "", "deprecated": false, @@ -18002,7 +18316,7 @@ "x-appwrite": { "method": "createSubscriber", "group": "subscribers", - "weight": 348, + "weight": 351, "cookies": false, "type": "", "deprecated": false, @@ -18090,7 +18404,7 @@ "x-appwrite": { "method": "getSubscriber", "group": "subscribers", - "weight": 351, + "weight": 354, "cookies": false, "type": "", "deprecated": false, @@ -18153,7 +18467,7 @@ "x-appwrite": { "method": "deleteSubscriber", "group": "subscribers", - "weight": 352, + "weight": 355, "cookies": false, "type": "", "deprecated": false, @@ -18224,7 +18538,7 @@ "x-appwrite": { "method": "list", "group": null, - "weight": 310, + "weight": 313, "cookies": false, "type": "", "deprecated": false, @@ -18297,7 +18611,7 @@ "x-appwrite": { "method": "createAppwriteMigration", "group": null, - "weight": 305, + "weight": 308, "cookies": false, "type": "", "deprecated": false, @@ -18389,7 +18703,7 @@ "x-appwrite": { "method": "getAppwriteReport", "group": null, - "weight": 312, + "weight": 315, "cookies": false, "type": "", "deprecated": false, @@ -18477,7 +18791,7 @@ "x-appwrite": { "method": "createCsvMigration", "group": null, - "weight": 309, + "weight": 312, "cookies": false, "type": "", "deprecated": false, @@ -18561,7 +18875,7 @@ "x-appwrite": { "method": "createFirebaseMigration", "group": null, - "weight": 306, + "weight": 309, "cookies": false, "type": "", "deprecated": false, @@ -18639,7 +18953,7 @@ "x-appwrite": { "method": "getFirebaseReport", "group": null, - "weight": 313, + "weight": 316, "cookies": false, "type": "", "deprecated": false, @@ -18710,7 +19024,7 @@ "x-appwrite": { "method": "createNHostMigration", "group": null, - "weight": 308, + "weight": 311, "cookies": false, "type": "", "deprecated": false, @@ -18829,7 +19143,7 @@ "x-appwrite": { "method": "getNHostReport", "group": null, - "weight": 315, + "weight": 318, "cookies": false, "type": "", "deprecated": false, @@ -18949,7 +19263,7 @@ "x-appwrite": { "method": "createSupabaseMigration", "group": null, - "weight": 307, + "weight": 310, "cookies": false, "type": "", "deprecated": false, @@ -19061,7 +19375,7 @@ "x-appwrite": { "method": "getSupabaseReport", "group": null, - "weight": 314, + "weight": 317, "cookies": false, "type": "", "deprecated": false, @@ -19172,7 +19486,7 @@ "x-appwrite": { "method": "get", "group": null, - "weight": 311, + "weight": 314, "cookies": false, "type": "", "deprecated": false, @@ -19230,7 +19544,7 @@ "x-appwrite": { "method": "retry", "group": null, - "weight": 316, + "weight": 319, "cookies": false, "type": "", "deprecated": false, @@ -19283,7 +19597,7 @@ "x-appwrite": { "method": "delete", "group": null, - "weight": 317, + "weight": 320, "cookies": false, "type": "", "deprecated": false, @@ -19341,7 +19655,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 196, + "weight": 199, "cookies": false, "type": "", "deprecated": false, @@ -19423,7 +19737,7 @@ "x-appwrite": { "method": "listVariables", "group": null, - "weight": 198, + "weight": 201, "cookies": false, "type": "", "deprecated": false, @@ -19471,7 +19785,7 @@ "x-appwrite": { "method": "createVariable", "group": null, - "weight": 197, + "weight": 200, "cookies": false, "type": "", "deprecated": false, @@ -19552,7 +19866,7 @@ "x-appwrite": { "method": "getVariable", "group": null, - "weight": 199, + "weight": 202, "cookies": false, "type": "", "deprecated": false, @@ -19610,7 +19924,7 @@ "x-appwrite": { "method": "updateVariable", "group": null, - "weight": 200, + "weight": 203, "cookies": false, "type": "", "deprecated": false, @@ -19693,7 +20007,7 @@ "x-appwrite": { "method": "deleteVariable", "group": null, - "weight": 201, + "weight": 204, "cookies": false, "type": "", "deprecated": false, @@ -19751,7 +20065,7 @@ "x-appwrite": { "method": "list", "group": "projects", - "weight": 151, + "weight": 154, "cookies": false, "type": "", "deprecated": false, @@ -19822,7 +20136,7 @@ "x-appwrite": { "method": "create", "group": "projects", - "weight": 150, + "weight": 153, "cookies": false, "type": "", "deprecated": false, @@ -19969,7 +20283,7 @@ "x-appwrite": { "method": "get", "group": "projects", - "weight": 152, + "weight": 155, "cookies": false, "type": "", "deprecated": false, @@ -20027,7 +20341,7 @@ "x-appwrite": { "method": "update", "group": "projects", - "weight": 153, + "weight": 156, "cookies": false, "type": "", "deprecated": false, @@ -20152,7 +20466,7 @@ "x-appwrite": { "method": "delete", "group": "projects", - "weight": 170, + "weight": 173, "cookies": false, "type": "", "deprecated": false, @@ -20212,7 +20526,7 @@ "x-appwrite": { "method": "updateApiStatus", "group": "projects", - "weight": 157, + "weight": 160, "cookies": false, "type": "", "deprecated": false, @@ -20304,7 +20618,7 @@ "x-appwrite": { "method": "updateApiStatusAll", "group": "projects", - "weight": 158, + "weight": 161, "cookies": false, "type": "", "deprecated": false, @@ -20382,7 +20696,7 @@ "x-appwrite": { "method": "updateAuthDuration", "group": "auth", - "weight": 163, + "weight": 166, "cookies": false, "type": "", "deprecated": false, @@ -20460,7 +20774,7 @@ "x-appwrite": { "method": "updateAuthLimit", "group": "auth", - "weight": 162, + "weight": 165, "cookies": false, "type": "", "deprecated": false, @@ -20538,7 +20852,7 @@ "x-appwrite": { "method": "updateAuthSessionsLimit", "group": "auth", - "weight": 168, + "weight": 171, "cookies": false, "type": "", "deprecated": false, @@ -20616,7 +20930,7 @@ "x-appwrite": { "method": "updateMembershipsPrivacy", "group": "auth", - "weight": 161, + "weight": 164, "cookies": false, "type": "", "deprecated": false, @@ -20708,7 +21022,7 @@ "x-appwrite": { "method": "updateMockNumbers", "group": "auth", - "weight": 169, + "weight": 172, "cookies": false, "type": "", "deprecated": false, @@ -20789,7 +21103,7 @@ "x-appwrite": { "method": "updateAuthPasswordDictionary", "group": "auth", - "weight": 166, + "weight": 169, "cookies": false, "type": "", "deprecated": false, @@ -20867,7 +21181,7 @@ "x-appwrite": { "method": "updateAuthPasswordHistory", "group": "auth", - "weight": 165, + "weight": 168, "cookies": false, "type": "", "deprecated": false, @@ -20945,7 +21259,7 @@ "x-appwrite": { "method": "updatePersonalDataCheck", "group": "auth", - "weight": 167, + "weight": 170, "cookies": false, "type": "", "deprecated": false, @@ -21023,7 +21337,7 @@ "x-appwrite": { "method": "updateSessionAlerts", "group": "auth", - "weight": 160, + "weight": 163, "cookies": false, "type": "", "deprecated": false, @@ -21101,7 +21415,7 @@ "x-appwrite": { "method": "updateAuthStatus", "group": "auth", - "weight": 164, + "weight": 167, "cookies": false, "type": "", "deprecated": false, @@ -21196,7 +21510,7 @@ "x-appwrite": { "method": "listDevKeys", "group": "devKeys", - "weight": 367, + "weight": 370, "cookies": false, "type": "", "deprecated": false, @@ -21239,15 +21553,6 @@ }, "default": [], "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "type": "string", - "x-example": "", - "default": "", - "in": "query" } ] }, @@ -21275,7 +21580,7 @@ "x-appwrite": { "method": "createDevKey", "group": "devKeys", - "weight": 364, + "weight": 367, "cookies": false, "type": "", "deprecated": false, @@ -21358,7 +21663,7 @@ "x-appwrite": { "method": "getDevKey", "group": "devKeys", - "weight": 366, + "weight": 369, "cookies": false, "type": "", "deprecated": false, @@ -21424,7 +21729,7 @@ "x-appwrite": { "method": "updateDevKey", "group": "devKeys", - "weight": 365, + "weight": 368, "cookies": false, "type": "", "deprecated": false, @@ -21510,7 +21815,7 @@ "x-appwrite": { "method": "deleteDevKey", "group": "devKeys", - "weight": 368, + "weight": 371, "cookies": false, "type": "", "deprecated": false, @@ -21578,7 +21883,7 @@ "x-appwrite": { "method": "createJWT", "group": "auth", - "weight": 182, + "weight": 185, "cookies": false, "type": "", "deprecated": false, @@ -21663,7 +21968,7 @@ "x-appwrite": { "method": "listKeys", "group": "keys", - "weight": 178, + "weight": 181, "cookies": false, "type": "", "deprecated": false, @@ -21721,7 +22026,7 @@ "x-appwrite": { "method": "createKey", "group": "keys", - "weight": 177, + "weight": 180, "cookies": false, "type": "", "deprecated": false, @@ -21813,7 +22118,7 @@ "x-appwrite": { "method": "getKey", "group": "keys", - "weight": 179, + "weight": 182, "cookies": false, "type": "", "deprecated": false, @@ -21879,7 +22184,7 @@ "x-appwrite": { "method": "updateKey", "group": "keys", - "weight": 180, + "weight": 183, "cookies": false, "type": "", "deprecated": false, @@ -21974,7 +22279,7 @@ "x-appwrite": { "method": "deleteKey", "group": "keys", - "weight": 181, + "weight": 184, "cookies": false, "type": "", "deprecated": false, @@ -22042,7 +22347,7 @@ "x-appwrite": { "method": "updateOAuth2", "group": "auth", - "weight": 159, + "weight": 162, "cookies": false, "type": "", "deprecated": false, @@ -22180,7 +22485,7 @@ "x-appwrite": { "method": "listPlatforms", "group": "platforms", - "weight": 184, + "weight": 187, "cookies": false, "type": "", "deprecated": false, @@ -22238,7 +22543,7 @@ "x-appwrite": { "method": "createPlatform", "group": "platforms", - "weight": 183, + "weight": 186, "cookies": false, "type": "", "deprecated": false, @@ -22358,7 +22663,7 @@ "x-appwrite": { "method": "getPlatform", "group": "platforms", - "weight": 185, + "weight": 188, "cookies": false, "type": "", "deprecated": false, @@ -22424,7 +22729,7 @@ "x-appwrite": { "method": "updatePlatform", "group": "platforms", - "weight": 186, + "weight": 189, "cookies": false, "type": "", "deprecated": false, @@ -22521,7 +22826,7 @@ "x-appwrite": { "method": "deletePlatform", "group": "platforms", - "weight": 187, + "weight": 190, "cookies": false, "type": "", "deprecated": false, @@ -22589,7 +22894,7 @@ "x-appwrite": { "method": "updateServiceStatus", "group": "projects", - "weight": 155, + "weight": 158, "cookies": false, "type": "", "deprecated": false, @@ -22690,7 +22995,7 @@ "x-appwrite": { "method": "updateServiceStatusAll", "group": "projects", - "weight": 156, + "weight": 159, "cookies": false, "type": "", "deprecated": false, @@ -22768,7 +23073,7 @@ "x-appwrite": { "method": "updateSmtp", "group": "templates", - "weight": 188, + "weight": 191, "cookies": false, "type": "", "deprecated": false, @@ -22897,7 +23202,7 @@ "x-appwrite": { "method": "createSmtpTest", "group": "templates", - "weight": 189, + "weight": 192, "cookies": false, "type": "", "deprecated": false, @@ -23035,7 +23340,7 @@ "x-appwrite": { "method": "updateTeam", "group": "projects", - "weight": 154, + "weight": 157, "cookies": false, "type": "", "deprecated": false, @@ -23111,7 +23416,7 @@ "x-appwrite": { "method": "getEmailTemplate", "group": "templates", - "weight": 191, + "weight": 194, "cookies": false, "type": "", "deprecated": false, @@ -23331,7 +23636,7 @@ "x-appwrite": { "method": "updateEmailTemplate", "group": "templates", - "weight": 193, + "weight": 196, "cookies": false, "type": "", "deprecated": false, @@ -23594,7 +23899,7 @@ "x-appwrite": { "method": "deleteEmailTemplate", "group": "templates", - "weight": 195, + "weight": 198, "cookies": false, "type": "", "deprecated": false, @@ -23814,7 +24119,7 @@ "x-appwrite": { "method": "getSmsTemplate", "group": "templates", - "weight": 190, + "weight": 193, "cookies": false, "type": "", "deprecated": false, @@ -24031,7 +24336,7 @@ "x-appwrite": { "method": "updateSmsTemplate", "group": "templates", - "weight": 192, + "weight": 195, "cookies": false, "type": "", "deprecated": false, @@ -24266,7 +24571,7 @@ "x-appwrite": { "method": "deleteSmsTemplate", "group": "templates", - "weight": 194, + "weight": 197, "cookies": false, "type": "", "deprecated": false, @@ -24483,7 +24788,7 @@ "x-appwrite": { "method": "listWebhooks", "group": "webhooks", - "weight": 172, + "weight": 175, "cookies": false, "type": "", "deprecated": false, @@ -24541,7 +24846,7 @@ "x-appwrite": { "method": "createWebhook", "group": "webhooks", - "weight": 171, + "weight": 174, "cookies": false, "type": "", "deprecated": false, @@ -24659,7 +24964,7 @@ "x-appwrite": { "method": "getWebhook", "group": "webhooks", - "weight": 173, + "weight": 176, "cookies": false, "type": "", "deprecated": false, @@ -24725,7 +25030,7 @@ "x-appwrite": { "method": "updateWebhook", "group": "webhooks", - "weight": 174, + "weight": 177, "cookies": false, "type": "", "deprecated": false, @@ -24846,7 +25151,7 @@ "x-appwrite": { "method": "deleteWebhook", "group": "webhooks", - "weight": 176, + "weight": 179, "cookies": false, "type": "", "deprecated": false, @@ -24914,7 +25219,7 @@ "x-appwrite": { "method": "updateWebhookSignature", "group": "webhooks", - "weight": 175, + "weight": 178, "cookies": false, "type": "", "deprecated": false, @@ -24980,7 +25285,7 @@ "x-appwrite": { "method": "listRules", "group": null, - "weight": 288, + "weight": 291, "cookies": false, "type": "", "deprecated": false, @@ -25053,7 +25358,7 @@ "x-appwrite": { "method": "createAPIRule", "group": null, - "weight": 429, + "weight": 432, "cookies": false, "type": "", "deprecated": false, @@ -25123,7 +25428,7 @@ "x-appwrite": { "method": "createFunctionRule", "group": null, - "weight": 431, + "weight": 434, "cookies": false, "type": "", "deprecated": false, @@ -25206,7 +25511,7 @@ "x-appwrite": { "method": "createRedirectRule", "group": null, - "weight": 432, + "weight": 435, "cookies": false, "type": "", "deprecated": false, @@ -25303,7 +25608,7 @@ "x-appwrite": { "method": "createSiteRule", "group": null, - "weight": 430, + "weight": 433, "cookies": false, "type": "", "deprecated": false, @@ -25384,7 +25689,7 @@ "x-appwrite": { "method": "getRule", "group": null, - "weight": 289, + "weight": 292, "cookies": false, "type": "", "deprecated": false, @@ -25437,7 +25742,7 @@ "x-appwrite": { "method": "deleteRule", "group": null, - "weight": 290, + "weight": 293, "cookies": false, "type": "", "deprecated": false, @@ -25497,7 +25802,7 @@ "x-appwrite": { "method": "updateRuleVerification", "group": null, - "weight": 291, + "weight": 294, "cookies": false, "type": "", "deprecated": false, @@ -25555,7 +25860,7 @@ "x-appwrite": { "method": "list", "group": "sites", - "weight": 401, + "weight": 404, "cookies": false, "type": "", "deprecated": false, @@ -25627,7 +25932,7 @@ "x-appwrite": { "method": "create", "group": "sites", - "weight": 399, + "weight": 402, "cookies": false, "type": "", "deprecated": false, @@ -25891,7 +26196,7 @@ "x-appwrite": { "method": "listFrameworks", "group": "frameworks", - "weight": 404, + "weight": 407, "cookies": false, "type": "", "deprecated": false, @@ -25940,7 +26245,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "frameworks", - "weight": 427, + "weight": 430, "cookies": false, "type": "", "deprecated": false, @@ -25990,7 +26295,7 @@ "x-appwrite": { "method": "listTemplates", "group": "templates", - "weight": 423, + "weight": 426, "cookies": false, "type": "", "deprecated": false, @@ -26084,7 +26389,7 @@ "x-appwrite": { "method": "getTemplate", "group": "templates", - "weight": 424, + "weight": 427, "cookies": false, "type": "", "deprecated": false, @@ -26142,7 +26447,7 @@ "x-appwrite": { "method": "listUsage", "group": null, - "weight": 425, + "weight": 428, "cookies": false, "type": "", "deprecated": false, @@ -26212,7 +26517,7 @@ "x-appwrite": { "method": "get", "group": "sites", - "weight": 400, + "weight": 403, "cookies": false, "type": "", "deprecated": false, @@ -26271,7 +26576,7 @@ "x-appwrite": { "method": "update", "group": "sites", - "weight": 402, + "weight": 405, "cookies": false, "type": "", "deprecated": false, @@ -26530,7 +26835,7 @@ "x-appwrite": { "method": "delete", "group": "sites", - "weight": 403, + "weight": 406, "cookies": false, "type": "", "deprecated": false, @@ -26591,7 +26896,7 @@ "x-appwrite": { "method": "updateSiteDeployment", "group": "sites", - "weight": 410, + "weight": 413, "cookies": false, "type": "", "deprecated": false, @@ -26668,7 +26973,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 409, + "weight": 412, "cookies": false, "type": "", "deprecated": false, @@ -26748,7 +27053,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 405, + "weight": 408, "cookies": false, "type": "upload", "deprecated": false, @@ -26848,7 +27153,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 413, + "weight": 416, "cookies": false, "type": "", "deprecated": false, @@ -26927,7 +27232,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 406, + "weight": 409, "cookies": false, "type": "", "deprecated": false, @@ -27033,7 +27338,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 407, + "weight": 410, "cookies": false, "type": "", "deprecated": false, @@ -27130,7 +27435,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 408, + "weight": 411, "cookies": false, "type": "", "deprecated": false, @@ -27192,7 +27497,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 411, + "weight": 414, "cookies": false, "type": "", "deprecated": false, @@ -27259,7 +27564,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 412, + "weight": 415, "cookies": false, "type": "location", "deprecated": false, @@ -27345,7 +27650,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 414, + "weight": 417, "cookies": false, "type": "", "deprecated": false, @@ -27412,7 +27717,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 416, + "weight": 419, "cookies": false, "type": "", "deprecated": false, @@ -27483,7 +27788,7 @@ "x-appwrite": { "method": "getLog", "group": "logs", - "weight": 415, + "weight": 418, "cookies": false, "type": "", "deprecated": false, @@ -27547,7 +27852,7 @@ "x-appwrite": { "method": "deleteLog", "group": "logs", - "weight": 417, + "weight": 420, "cookies": false, "type": "", "deprecated": false, @@ -27614,7 +27919,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 426, + "weight": 429, "cookies": false, "type": "", "deprecated": false, @@ -27692,7 +27997,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 420, + "weight": 423, "cookies": false, "type": "", "deprecated": false, @@ -27751,7 +28056,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 418, + "weight": 421, "cookies": false, "type": "", "deprecated": false, @@ -27841,7 +28146,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 419, + "weight": 422, "cookies": false, "type": "", "deprecated": false, @@ -27908,7 +28213,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 421, + "weight": 424, "cookies": false, "type": "", "deprecated": false, @@ -28000,7 +28305,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 422, + "weight": 425, "cookies": false, "type": "", "deprecated": false, @@ -28067,7 +28372,7 @@ "x-appwrite": { "method": "listBuckets", "group": "buckets", - "weight": 203, + "weight": 206, "cookies": false, "type": "", "deprecated": false, @@ -28139,7 +28444,7 @@ "x-appwrite": { "method": "createBucket", "group": "buckets", - "weight": 202, + "weight": 205, "cookies": false, "type": "", "deprecated": false, @@ -28276,7 +28581,7 @@ "x-appwrite": { "method": "getBucket", "group": "buckets", - "weight": 204, + "weight": 207, "cookies": false, "type": "", "deprecated": false, @@ -28335,7 +28640,7 @@ "x-appwrite": { "method": "updateBucket", "group": "buckets", - "weight": 205, + "weight": 208, "cookies": false, "type": "", "deprecated": false, @@ -28468,7 +28773,7 @@ "x-appwrite": { "method": "deleteBucket", "group": "buckets", - "weight": 206, + "weight": 209, "cookies": false, "type": "", "deprecated": false, @@ -28527,7 +28832,7 @@ "x-appwrite": { "method": "listFiles", "group": "files", - "weight": 208, + "weight": 211, "cookies": false, "type": "", "deprecated": false, @@ -28610,7 +28915,7 @@ "x-appwrite": { "method": "createFile", "group": "files", - "weight": 207, + "weight": 210, "cookies": false, "type": "upload", "deprecated": false, @@ -28700,7 +29005,7 @@ "x-appwrite": { "method": "getFile", "group": "files", - "weight": 209, + "weight": 212, "cookies": false, "type": "", "deprecated": false, @@ -28770,7 +29075,7 @@ "x-appwrite": { "method": "updateFile", "group": "files", - "weight": 214, + "weight": 217, "cookies": false, "type": "", "deprecated": false, @@ -28859,7 +29164,7 @@ "x-appwrite": { "method": "deleteFile", "group": "files", - "weight": 215, + "weight": 218, "cookies": false, "type": "", "deprecated": false, @@ -28929,7 +29234,7 @@ "x-appwrite": { "method": "getFileDownload", "group": "files", - "weight": 211, + "weight": 214, "cookies": false, "type": "location", "deprecated": false, @@ -28972,6 +29277,15 @@ "type": "string", "x-example": "", "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "type": "string", + "x-example": "", + "default": "", + "in": "query" } ] } @@ -28999,7 +29313,7 @@ "x-appwrite": { "method": "getFilePreview", "group": "files", - "weight": 210, + "weight": 213, "cookies": false, "type": "location", "deprecated": false, @@ -29170,6 +29484,15 @@ "x-enum-keys": [], "default": "", "in": "query" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "type": "string", + "x-example": "", + "default": "", + "in": "query" } ] } @@ -29197,7 +29520,7 @@ "x-appwrite": { "method": "getFileView", "group": "files", - "weight": 212, + "weight": 215, "cookies": false, "type": "location", "deprecated": false, @@ -29240,6 +29563,15 @@ "type": "string", "x-example": "", "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "type": "string", + "x-example": "", + "default": "", + "in": "query" } ] } @@ -29267,7 +29599,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 216, + "weight": 219, "cookies": false, "type": "", "deprecated": false, @@ -29337,7 +29669,7 @@ "x-appwrite": { "method": "getBucketUsage", "group": null, - "weight": 217, + "weight": 220, "cookies": false, "type": "", "deprecated": false, @@ -29415,7 +29747,7 @@ "x-appwrite": { "method": "list", "group": "teams", - "weight": 219, + "weight": 222, "cookies": false, "type": "", "deprecated": false, @@ -29490,7 +29822,7 @@ "x-appwrite": { "method": "create", "group": "teams", - "weight": 218, + "weight": 221, "cookies": false, "type": "", "deprecated": false, @@ -29580,7 +29912,7 @@ "x-appwrite": { "method": "get", "group": "teams", - "weight": 220, + "weight": 223, "cookies": false, "type": "", "deprecated": false, @@ -29642,7 +29974,7 @@ "x-appwrite": { "method": "updateName", "group": "teams", - "weight": 222, + "weight": 225, "cookies": false, "type": "", "deprecated": false, @@ -29717,7 +30049,7 @@ "x-appwrite": { "method": "delete", "group": "teams", - "weight": 224, + "weight": 227, "cookies": false, "type": "", "deprecated": false, @@ -29779,7 +30111,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 231, + "weight": 234, "cookies": false, "type": "", "deprecated": false, @@ -29849,7 +30181,7 @@ "x-appwrite": { "method": "listMemberships", "group": "memberships", - "weight": 226, + "weight": 229, "cookies": false, "type": "", "deprecated": false, @@ -29932,7 +30264,7 @@ "x-appwrite": { "method": "createMembership", "group": "memberships", - "weight": 225, + "weight": 228, "cookies": false, "type": "", "deprecated": false, @@ -30045,7 +30377,7 @@ "x-appwrite": { "method": "getMembership", "group": "memberships", - "weight": 227, + "weight": 230, "cookies": false, "type": "", "deprecated": false, @@ -30115,7 +30447,7 @@ "x-appwrite": { "method": "updateMembership", "group": "memberships", - "weight": 228, + "weight": 231, "cookies": false, "type": "", "deprecated": false, @@ -30201,7 +30533,7 @@ "x-appwrite": { "method": "deleteMembership", "group": "memberships", - "weight": 230, + "weight": 233, "cookies": false, "type": "", "deprecated": false, @@ -30273,7 +30605,7 @@ "x-appwrite": { "method": "updateMembershipStatus", "group": "memberships", - "weight": 229, + "weight": 232, "cookies": false, "type": "", "deprecated": false, @@ -30366,7 +30698,7 @@ "x-appwrite": { "method": "getPrefs", "group": "teams", - "weight": 221, + "weight": 224, "cookies": false, "type": "", "deprecated": false, @@ -30426,7 +30758,7 @@ "x-appwrite": { "method": "updatePrefs", "group": "teams", - "weight": 223, + "weight": 226, "cookies": false, "type": "", "deprecated": false, @@ -30504,7 +30836,7 @@ "x-appwrite": { "method": "list", "group": "files", - "weight": 436, + "weight": 438, "cookies": false, "type": "", "deprecated": false, @@ -30574,7 +30906,7 @@ "tags": [ "tokens" ], - "description": "Create a new token. A token is linked to a file or a bucket and manages permissions for those file(s). Token can be passed as a header or request get parameter.", + "description": "Create a new token. A token is linked to a file. Token can be passed as a header or request get parameter.", "responses": { "201": { "description": "ResourceToken", @@ -30586,12 +30918,12 @@ "x-appwrite": { "method": "createFileToken", "group": "files", - "weight": 433, + "weight": 436, "cookies": false, "type": "", "deprecated": false, "demo": "tokens\/create-file-token.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new token. A token is linked to a file or a bucket and manages permissions for those file(s). Token can be passed as a header or request get parameter.", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new token. A token is linked to a file. Token can be passed as a header or request get parameter.", "rate-limit": 60, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -30642,15 +30974,6 @@ "default": null, "x-example": null, "x-nullable": true - }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": [], - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - } } } } @@ -30681,7 +31004,7 @@ "x-appwrite": { "method": "get", "group": "tokens", - "weight": 434, + "weight": 437, "cookies": false, "type": "", "deprecated": false, @@ -30692,9 +31015,7 @@ "rate-key": "url:{url},ip:{ip}", "scope": "tokens.read", "platforms": [ - "client", - "server", - "server" + "console" ], "packaging": false, "auth": { @@ -30703,9 +31024,7 @@ }, "security": [ { - "Project": [], - "Key": [], - "JWT": [] + "Project": [] } ], "parameters": [ @@ -30731,7 +31050,7 @@ "tags": [ "tokens" ], - "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date or permissions.", + "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date.", "responses": { "200": { "description": "ResourceToken", @@ -30743,20 +31062,18 @@ "x-appwrite": { "method": "update", "group": "tokens", - "weight": 437, + "weight": 439, "cookies": false, "type": "", "deprecated": false, "demo": "tokens\/update.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterUpdate a token by its unique ID. Use this endpoint to update a token's expiry date or permissions.", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterUpdate a token by its unique ID. Use this endpoint to update a token's expiry date.", "rate-limit": 60, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": "tokens.write", "platforms": [ - "client", - "server", - "server" + "console" ], "packaging": false, "auth": { @@ -30765,9 +31082,7 @@ }, "security": [ { - "Project": [], - "Key": [], - "JWT": [] + "Project": [] } ], "parameters": [ @@ -30791,15 +31106,6 @@ "default": null, "x-example": null, "x-nullable": true - }, - "permissions": { - "type": "array", - "description": "An array of permission string. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": null, - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - } } } } @@ -30825,7 +31131,7 @@ "x-appwrite": { "method": "delete", "group": "tokens", - "weight": 438, + "weight": 440, "cookies": false, "type": "", "deprecated": false, @@ -30836,9 +31142,7 @@ "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": "tokens.write", "platforms": [ - "client", - "server", - "server" + "console" ], "packaging": false, "auth": { @@ -30847,9 +31151,7 @@ }, "security": [ { - "Project": [], - "Key": [], - "JWT": [] + "Project": [] } ], "parameters": [ @@ -30864,68 +31166,6 @@ ] } }, - "\/tokens\/{tokenId}\/jwt": { - "get": { - "summary": "Get token as JWT", - "operationId": "tokensGetJWT", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "tokens" - ], - "description": "Get a JWT based token by its unique ID. You can use the JWT to authenticate on behalf of the user.", - "responses": { - "200": { - "description": "JWT", - "schema": { - "$ref": "#\/definitions\/jwt" - } - } - }, - "x-appwrite": { - "method": "getJWT", - "group": "tokens", - "weight": 435, - "cookies": false, - "type": "", - "deprecated": false, - "demo": "tokens\/get-j-w-t.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterGet a JWT based token by its unique ID. You can use the JWT to authenticate on behalf of the user.", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", - "platforms": [ - "client", - "server", - "server" - ], - "packaging": false, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "tokenId", - "description": "File token ID.", - "required": true, - "type": "string", - "x-example": "", - "in": "path" - } - ] - } - }, "\/users": { "get": { "summary": "List users", @@ -30949,7 +31189,7 @@ "x-appwrite": { "method": "list", "group": "users", - "weight": 241, + "weight": 244, "cookies": false, "type": "", "deprecated": false, @@ -31021,7 +31261,7 @@ "x-appwrite": { "method": "create", "group": "users", - "weight": 232, + "weight": 235, "cookies": false, "type": "", "deprecated": false, @@ -31116,7 +31356,7 @@ "x-appwrite": { "method": "createArgon2User", "group": "users", - "weight": 235, + "weight": 238, "cookies": false, "type": "", "deprecated": false, @@ -31207,7 +31447,7 @@ "x-appwrite": { "method": "createBcryptUser", "group": "users", - "weight": 233, + "weight": 236, "cookies": false, "type": "", "deprecated": false, @@ -31296,7 +31536,7 @@ "x-appwrite": { "method": "listIdentities", "group": "identities", - "weight": 249, + "weight": 252, "cookies": false, "type": "", "deprecated": false, @@ -31365,7 +31605,7 @@ "x-appwrite": { "method": "deleteIdentity", "group": "identities", - "weight": 272, + "weight": 275, "cookies": false, "type": "", "deprecated": false, @@ -31426,7 +31666,7 @@ "x-appwrite": { "method": "createMD5User", "group": "users", - "weight": 234, + "weight": 237, "cookies": false, "type": "", "deprecated": false, @@ -31517,7 +31757,7 @@ "x-appwrite": { "method": "createPHPassUser", "group": "users", - "weight": 237, + "weight": 240, "cookies": false, "type": "", "deprecated": false, @@ -31608,7 +31848,7 @@ "x-appwrite": { "method": "createScryptUser", "group": "users", - "weight": 238, + "weight": 241, "cookies": false, "type": "", "deprecated": false, @@ -31734,7 +31974,7 @@ "x-appwrite": { "method": "createScryptModifiedUser", "group": "users", - "weight": 239, + "weight": 242, "cookies": false, "type": "", "deprecated": false, @@ -31846,7 +32086,7 @@ "x-appwrite": { "method": "createSHAUser", "group": "users", - "weight": 236, + "weight": 239, "cookies": false, "type": "", "deprecated": false, @@ -31956,7 +32196,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 274, + "weight": 277, "cookies": false, "type": "", "deprecated": false, @@ -32026,7 +32266,7 @@ "x-appwrite": { "method": "get", "group": "users", - "weight": 242, + "weight": 245, "cookies": false, "type": "", "deprecated": false, @@ -32080,7 +32320,7 @@ "x-appwrite": { "method": "delete", "group": "users", - "weight": 270, + "weight": 273, "cookies": false, "type": "", "deprecated": false, @@ -32141,7 +32381,7 @@ "x-appwrite": { "method": "updateEmail", "group": "users", - "weight": 255, + "weight": 258, "cookies": false, "type": "", "deprecated": false, @@ -32220,7 +32460,7 @@ "x-appwrite": { "method": "createJWT", "group": "sessions", - "weight": 273, + "weight": 276, "cookies": false, "type": "", "deprecated": false, @@ -32302,7 +32542,7 @@ "x-appwrite": { "method": "updateLabels", "group": "users", - "weight": 251, + "weight": 254, "cookies": false, "type": "", "deprecated": false, @@ -32382,7 +32622,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 247, + "weight": 250, "cookies": false, "type": "", "deprecated": false, @@ -32453,7 +32693,7 @@ "x-appwrite": { "method": "listMemberships", "group": "memberships", - "weight": 246, + "weight": 249, "cookies": false, "type": "", "deprecated": false, @@ -32535,7 +32775,7 @@ "x-appwrite": { "method": "updateMfa", "group": "users", - "weight": 260, + "weight": 263, "cookies": false, "type": "", "deprecated": false, @@ -32609,7 +32849,7 @@ "x-appwrite": { "method": "deleteMfaAuthenticator", "group": "mfa", - "weight": 265, + "weight": 268, "cookies": false, "type": "", "deprecated": false, @@ -32681,7 +32921,7 @@ "x-appwrite": { "method": "listMfaFactors", "group": "mfa", - "weight": 261, + "weight": 264, "cookies": false, "type": "", "deprecated": false, @@ -32740,7 +32980,7 @@ "x-appwrite": { "method": "getMfaRecoveryCodes", "group": "mfa", - "weight": 262, + "weight": 265, "cookies": false, "type": "", "deprecated": false, @@ -32799,7 +33039,7 @@ "x-appwrite": { "method": "updateMfaRecoveryCodes", "group": "mfa", - "weight": 264, + "weight": 267, "cookies": false, "type": "", "deprecated": false, @@ -32858,7 +33098,7 @@ "x-appwrite": { "method": "createMfaRecoveryCodes", "group": "mfa", - "weight": 263, + "weight": 266, "cookies": false, "type": "", "deprecated": false, @@ -32919,7 +33159,7 @@ "x-appwrite": { "method": "updateName", "group": "users", - "weight": 253, + "weight": 256, "cookies": false, "type": "", "deprecated": false, @@ -32998,7 +33238,7 @@ "x-appwrite": { "method": "updatePassword", "group": "users", - "weight": 254, + "weight": 257, "cookies": false, "type": "", "deprecated": false, @@ -33077,7 +33317,7 @@ "x-appwrite": { "method": "updatePhone", "group": "users", - "weight": 256, + "weight": 259, "cookies": false, "type": "", "deprecated": false, @@ -33154,7 +33394,7 @@ "x-appwrite": { "method": "getPrefs", "group": "users", - "weight": 243, + "weight": 246, "cookies": false, "type": "", "deprecated": false, @@ -33213,7 +33453,7 @@ "x-appwrite": { "method": "updatePrefs", "group": "users", - "weight": 258, + "weight": 261, "cookies": false, "type": "", "deprecated": false, @@ -33290,7 +33530,7 @@ "x-appwrite": { "method": "listSessions", "group": "sessions", - "weight": 245, + "weight": 248, "cookies": false, "type": "", "deprecated": false, @@ -33349,7 +33589,7 @@ "x-appwrite": { "method": "createSession", "group": "sessions", - "weight": 266, + "weight": 269, "cookies": false, "type": "", "deprecated": false, @@ -33403,7 +33643,7 @@ "x-appwrite": { "method": "deleteSessions", "group": "sessions", - "weight": 269, + "weight": 272, "cookies": false, "type": "", "deprecated": false, @@ -33459,7 +33699,7 @@ "x-appwrite": { "method": "deleteSession", "group": "sessions", - "weight": 268, + "weight": 271, "cookies": false, "type": "", "deprecated": false, @@ -33528,7 +33768,7 @@ "x-appwrite": { "method": "updateStatus", "group": "users", - "weight": 250, + "weight": 253, "cookies": false, "type": "", "deprecated": false, @@ -33605,7 +33845,7 @@ "x-appwrite": { "method": "listTargets", "group": "targets", - "weight": 248, + "weight": 251, "cookies": false, "type": "", "deprecated": false, @@ -33677,7 +33917,7 @@ "x-appwrite": { "method": "createTarget", "group": "targets", - "weight": 240, + "weight": 243, "cookies": false, "type": "", "deprecated": false, @@ -33788,7 +34028,7 @@ "x-appwrite": { "method": "getTarget", "group": "targets", - "weight": 244, + "weight": 247, "cookies": false, "type": "", "deprecated": false, @@ -33856,7 +34096,7 @@ "x-appwrite": { "method": "updateTarget", "group": "targets", - "weight": 259, + "weight": 262, "cookies": false, "type": "", "deprecated": false, @@ -33946,7 +34186,7 @@ "x-appwrite": { "method": "deleteTarget", "group": "targets", - "weight": 271, + "weight": 274, "cookies": false, "type": "", "deprecated": false, @@ -34016,7 +34256,7 @@ "x-appwrite": { "method": "createToken", "group": "sessions", - "weight": 267, + "weight": 270, "cookies": false, "type": "", "deprecated": false, @@ -34098,7 +34338,7 @@ "x-appwrite": { "method": "updateEmailVerification", "group": "users", - "weight": 257, + "weight": 260, "cookies": false, "type": "", "deprecated": false, @@ -34177,7 +34417,7 @@ "x-appwrite": { "method": "updatePhoneVerification", "group": "users", - "weight": 252, + "weight": 255, "cookies": false, "type": "", "deprecated": false, @@ -34256,7 +34496,7 @@ "x-appwrite": { "method": "createRepositoryDetection", "group": "repositories", - "weight": 278, + "weight": 281, "cookies": false, "type": "", "deprecated": false, @@ -34351,7 +34591,7 @@ "x-appwrite": { "method": "listRepositories", "group": "repositories", - "weight": 279, + "weight": 282, "cookies": false, "type": "", "deprecated": false, @@ -34432,7 +34672,7 @@ "x-appwrite": { "method": "createRepository", "group": "repositories", - "weight": 280, + "weight": 283, "cookies": false, "type": "", "deprecated": false, @@ -34515,7 +34755,7 @@ "x-appwrite": { "method": "getRepository", "group": "repositories", - "weight": 281, + "weight": 284, "cookies": false, "type": "", "deprecated": false, @@ -34581,7 +34821,7 @@ "x-appwrite": { "method": "listRepositoryBranches", "group": "repositories", - "weight": 282, + "weight": 285, "cookies": false, "type": "", "deprecated": false, @@ -34647,7 +34887,7 @@ "x-appwrite": { "method": "getRepositoryContents", "group": "repositories", - "weight": 277, + "weight": 280, "cookies": false, "type": "", "deprecated": false, @@ -34721,7 +34961,7 @@ "x-appwrite": { "method": "updateExternalDeployments", "group": "repositories", - "weight": 287, + "weight": 290, "cookies": false, "type": "", "deprecated": false, @@ -34805,7 +35045,7 @@ "x-appwrite": { "method": "listInstallations", "group": "installations", - "weight": 284, + "weight": 287, "cookies": false, "type": "", "deprecated": false, @@ -34876,7 +35116,7 @@ "x-appwrite": { "method": "getInstallation", "group": "installations", - "weight": 285, + "weight": 288, "cookies": false, "type": "", "deprecated": false, @@ -34929,7 +35169,7 @@ "x-appwrite": { "method": "deleteInstallation", "group": "installations", - "weight": 286, + "weight": 289, "cookies": false, "type": "", "deprecated": false, @@ -34968,90 +35208,71 @@ "tags": [ { "name": "account", - "description": "The Account service allows you to authenticate and manage a user account.", - "x-globalAttributes": [] + "description": "The Account service allows you to authenticate and manage a user account." }, { "name": "avatars", - "description": "The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars.", - "x-globalAttributes": [] + "description": "The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars." }, { "name": "databases", - "description": "The Databases service allows you to create structured collections of documents, query and filter lists of documents", - "x-globalAttributes": [ - "databaseId" - ] + "description": "The Databases service allows you to create structured collections of documents, query and filter lists of documents" }, { "name": "locale", - "description": "The Locale service allows you to customize your app based on your users' location.", - "x-globalAttributes": [] + "description": "The Locale service allows you to customize your app based on your users' location." }, { "name": "health", - "description": "The Health service allows you to both validate and monitor your Appwrite server's health.", - "x-globalAttributes": [] + "description": "The Health service allows you to both validate and monitor your Appwrite server's health." }, { "name": "projects", - "description": "The Project service allows you to manage all the projects in your Appwrite server.", - "x-globalAttributes": [] + "description": "The Project service allows you to manage all the projects in your Appwrite server." }, { "name": "project", - "description": "The Project service allows you to manage all the projects in your Appwrite server.", - "x-globalAttributes": [] + "description": "The Project service allows you to manage all the projects in your Appwrite server." }, { "name": "storage", - "description": "The Storage service allows you to manage your project files.", - "x-globalAttributes": [] + "description": "The Storage service allows you to manage your project files." }, { "name": "teams", - "description": "The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources", - "x-globalAttributes": [] + "description": "The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources" }, { "name": "users", - "description": "The Users service allows you to manage your project users.", - "x-globalAttributes": [] + "description": "The Users service allows you to manage your project users." }, { "name": "sites", - "description": "The Sites Service allows you view, create and manage your web applications.", - "x-globalAttributes": [] + "description": "The Sites Service allows you view, create and manage your web applications." }, { "name": "functions", - "description": "The Functions Service allows you view, create and manage your Cloud Functions.", - "x-globalAttributes": [] + "description": "The Functions Service allows you view, create and manage your Cloud Functions." }, { "name": "proxy", - "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration.", - "x-globalAttributes": [] + "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration." }, { "name": "graphql", - "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL.", - "x-globalAttributes": [] + "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL." }, { "name": "console", - "description": "The Console service allows you to interact with console relevant informations.", - "x-globalAttributes": [] + "description": "The Console service allows you to interact with console relevant informations." }, { "name": "migrations", - "description": "The Migrations service allows you to migrate third-party data to your Appwrite project.", - "x-globalAttributes": [] + "description": "The Migrations service allows you to migrate third-party data to your Appwrite project." }, { "name": "messaging", - "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.).", - "x-globalAttributes": [] + "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.)." } ], "definitions": { @@ -38290,16 +38511,6 @@ "description": "Token creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "$permissions": { - "type": "array", - "description": "Token permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "x-example": [ - "read(\"any\")" - ] - }, "resourceId": { "type": "string", "description": "Resource ID.", @@ -38315,6 +38526,11 @@ "description": "Token expiration date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, + "secret": { + "type": "string", + "description": "JWT encoded string.", + "x-example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + }, "accessedAt": { "type": "string", "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", @@ -38324,10 +38540,10 @@ "required": [ "$id", "$createdAt", - "$permissions", "resourceId", "resourceType", "expire", + "secret", "accessedAt" ] }, diff --git a/app/config/specs/swagger2-latest-server.json b/app/config/specs/swagger2-latest-server.json index 61a75e3dec..302a486e1f 100644 --- a/app/config/specs/swagger2-latest-server.json +++ b/app/config/specs/swagger2-latest-server.json @@ -2458,7 +2458,10 @@ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-token-email.md", "rate-limit": 10, "rate-time": 3600, - "rate-key": "url:{url},email:{param-email}", + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], "scope": "sessions.write", "platforms": [ "server", @@ -7590,7 +7593,7 @@ "tags": [ "databases" ], - "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.\n", + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", "responses": { "201": { "description": "Document", @@ -7618,6 +7621,51 @@ "server" ], "packaging": false, + "methods": [ + { + "name": "createDocument", + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console." + }, + { + "name": "createDocuments", + "parameters": [ + "databaseId", + "collectionId", + "documents" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console." + } + ], "auth": { "Project": [], "Session": [] @@ -7657,13 +7705,13 @@ "documentId": { "type": "string", "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, + "default": "", "x-example": "" }, "data": { "type": "object", "description": "Document data as JSON object.", - "default": {}, + "default": [], "x-example": "{}" }, "permissions": { @@ -7674,12 +7722,281 @@ "items": { "type": "string" } + }, + "documents": { + "type": "array", + "description": "Array of documents data as JSON objects.", + "default": [], + "x-example": null, + "items": { + "type": "object" + } } - }, - "required": [ - "documentId", - "data" - ] + } + } + } + ] + }, + "put": { + "summary": "Create or update documents", + "operationId": "databasesUpsertDocuments", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "databases" + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.\n", + "responses": { + "200": { + "description": "Documents List", + "schema": { + "$ref": "#\/definitions\/documentList" + } + } + }, + "x-appwrite": { + "method": "upsertDocuments", + "group": "documents", + "weight": 115, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "databases\/upsert-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "server" + ], + "packaging": false, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "documents": { + "type": "array", + "description": "Array of document data as JSON objects. May contain partial documents.", + "default": [], + "x-example": null, + "items": { + "type": "object" + } + } + } + } + } + ] + }, + "patch": { + "summary": "Update documents", + "operationId": "databasesUpdateDocuments", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "databases" + ], + "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", + "responses": { + "200": { + "description": "Documents List", + "schema": { + "$ref": "#\/definitions\/documentList" + } + } + }, + "x-appwrite": { + "method": "updateDocuments", + "group": "documents", + "weight": 114, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "databases\/update-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "server" + ], + "packaging": false, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "default": [], + "x-example": "{}" + }, + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + } + } + } + } + ] + }, + "delete": { + "summary": "Delete documents", + "operationId": "databasesDeleteDocuments", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "databases" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "Documents List", + "schema": { + "$ref": "#\/definitions\/documentList" + } + } + }, + "x-appwrite": { + "method": "deleteDocuments", + "group": "documents", + "weight": 117, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "databases\/delete-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "server" + ], + "packaging": false, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + } + } } } ] @@ -7899,7 +8216,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 114, + "weight": 116, "cookies": false, "type": "", "deprecated": false, @@ -8323,7 +8640,7 @@ "x-appwrite": { "method": "list", "group": "functions", - "weight": 372, + "weight": 375, "cookies": false, "type": "", "deprecated": false, @@ -8396,7 +8713,7 @@ "x-appwrite": { "method": "create", "group": "functions", - "weight": 369, + "weight": 372, "cookies": false, "type": "", "deprecated": false, @@ -8646,7 +8963,7 @@ "x-appwrite": { "method": "listRuntimes", "group": "runtimes", - "weight": 374, + "weight": 377, "cookies": false, "type": "", "deprecated": false, @@ -8696,7 +9013,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "runtimes", - "weight": 375, + "weight": 378, "cookies": false, "type": "", "deprecated": false, @@ -8747,7 +9064,7 @@ "x-appwrite": { "method": "get", "group": "functions", - "weight": 370, + "weight": 373, "cookies": false, "type": "", "deprecated": false, @@ -8807,7 +9124,7 @@ "x-appwrite": { "method": "update", "group": "functions", - "weight": 371, + "weight": 374, "cookies": false, "type": "", "deprecated": false, @@ -9053,7 +9370,7 @@ "x-appwrite": { "method": "delete", "group": "functions", - "weight": 373, + "weight": 376, "cookies": false, "type": "", "deprecated": false, @@ -9115,7 +9432,7 @@ "x-appwrite": { "method": "updateFunctionDeployment", "group": "functions", - "weight": 378, + "weight": 381, "cookies": false, "type": "", "deprecated": false, @@ -9193,7 +9510,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 379, + "weight": 382, "cookies": false, "type": "", "deprecated": false, @@ -9274,7 +9591,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 376, + "weight": 379, "cookies": false, "type": "upload", "deprecated": false, @@ -9367,7 +9684,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 384, + "weight": 387, "cookies": false, "type": "", "deprecated": false, @@ -9453,7 +9770,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 381, + "weight": 384, "cookies": false, "type": "", "deprecated": false, @@ -9560,7 +9877,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 382, + "weight": 385, "cookies": false, "type": "", "deprecated": false, @@ -9657,7 +9974,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 377, + "weight": 380, "cookies": false, "type": "", "deprecated": false, @@ -9720,7 +10037,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 380, + "weight": 383, "cookies": false, "type": "", "deprecated": false, @@ -9788,7 +10105,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 383, + "weight": 386, "cookies": false, "type": "location", "deprecated": false, @@ -9875,7 +10192,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 385, + "weight": 388, "cookies": false, "type": "", "deprecated": false, @@ -9943,7 +10260,7 @@ "x-appwrite": { "method": "listExecutions", "group": "executions", - "weight": 388, + "weight": 391, "cookies": false, "type": "", "deprecated": false, @@ -10019,7 +10336,7 @@ "x-appwrite": { "method": "createExecution", "group": "executions", - "weight": 386, + "weight": 389, "cookies": false, "type": "", "deprecated": false, @@ -10138,7 +10455,7 @@ "x-appwrite": { "method": "getExecution", "group": "executions", - "weight": 387, + "weight": 390, "cookies": false, "type": "", "deprecated": false, @@ -10205,7 +10522,7 @@ "x-appwrite": { "method": "deleteExecution", "group": "executions", - "weight": 389, + "weight": 392, "cookies": false, "type": "", "deprecated": false, @@ -10273,7 +10590,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 394, + "weight": 397, "cookies": false, "type": "", "deprecated": false, @@ -10333,7 +10650,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 392, + "weight": 395, "cookies": false, "type": "", "deprecated": false, @@ -10424,7 +10741,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 393, + "weight": 396, "cookies": false, "type": "", "deprecated": false, @@ -10492,7 +10809,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 395, + "weight": 398, "cookies": false, "type": "", "deprecated": false, @@ -10585,7 +10902,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 396, + "weight": 399, "cookies": false, "type": "", "deprecated": false, @@ -10655,7 +10972,7 @@ "x-appwrite": { "method": "query", "group": "graphql", - "weight": 302, + "weight": 305, "cookies": false, "type": "graphql", "deprecated": false, @@ -10731,7 +11048,7 @@ "x-appwrite": { "method": "mutation", "group": "graphql", - "weight": 301, + "weight": 304, "cookies": false, "type": "graphql", "deprecated": false, @@ -10805,7 +11122,7 @@ "x-appwrite": { "method": "get", "group": "health", - "weight": 126, + "weight": 129, "cookies": false, "type": "", "deprecated": false, @@ -10855,7 +11172,7 @@ "x-appwrite": { "method": "getAntivirus", "group": "health", - "weight": 147, + "weight": 150, "cookies": false, "type": "", "deprecated": false, @@ -10905,7 +11222,7 @@ "x-appwrite": { "method": "getCache", "group": "health", - "weight": 129, + "weight": 132, "cookies": false, "type": "", "deprecated": false, @@ -10955,7 +11272,7 @@ "x-appwrite": { "method": "getCertificate", "group": "health", - "weight": 134, + "weight": 137, "cookies": false, "type": "", "deprecated": false, @@ -11014,7 +11331,7 @@ "x-appwrite": { "method": "getDB", "group": "health", - "weight": 128, + "weight": 131, "cookies": false, "type": "", "deprecated": false, @@ -11064,7 +11381,7 @@ "x-appwrite": { "method": "getPubSub", "group": "health", - "weight": 130, + "weight": 133, "cookies": false, "type": "", "deprecated": false, @@ -11114,7 +11431,7 @@ "x-appwrite": { "method": "getQueueBuilds", "group": "queue", - "weight": 136, + "weight": 139, "cookies": false, "type": "", "deprecated": false, @@ -11175,7 +11492,7 @@ "x-appwrite": { "method": "getQueueCertificates", "group": "queue", - "weight": 135, + "weight": 138, "cookies": false, "type": "", "deprecated": false, @@ -11236,7 +11553,7 @@ "x-appwrite": { "method": "getQueueDatabases", "group": "queue", - "weight": 137, + "weight": 140, "cookies": false, "type": "", "deprecated": false, @@ -11306,7 +11623,7 @@ "x-appwrite": { "method": "getQueueDeletes", "group": "queue", - "weight": 138, + "weight": 141, "cookies": false, "type": "", "deprecated": false, @@ -11367,7 +11684,7 @@ "x-appwrite": { "method": "getFailedJobs", "group": "queue", - "weight": 148, + "weight": 151, "cookies": false, "type": "", "deprecated": false, @@ -11452,7 +11769,7 @@ "x-appwrite": { "method": "getQueueFunctions", "group": "queue", - "weight": 142, + "weight": 145, "cookies": false, "type": "", "deprecated": false, @@ -11513,7 +11830,7 @@ "x-appwrite": { "method": "getQueueLogs", "group": "queue", - "weight": 133, + "weight": 136, "cookies": false, "type": "", "deprecated": false, @@ -11574,7 +11891,7 @@ "x-appwrite": { "method": "getQueueMails", "group": "queue", - "weight": 139, + "weight": 142, "cookies": false, "type": "", "deprecated": false, @@ -11635,7 +11952,7 @@ "x-appwrite": { "method": "getQueueMessaging", "group": "queue", - "weight": 140, + "weight": 143, "cookies": false, "type": "", "deprecated": false, @@ -11696,7 +12013,7 @@ "x-appwrite": { "method": "getQueueMigrations", "group": "queue", - "weight": 141, + "weight": 144, "cookies": false, "type": "", "deprecated": false, @@ -11757,7 +12074,7 @@ "x-appwrite": { "method": "getQueueStatsResources", "group": "queue", - "weight": 143, + "weight": 146, "cookies": false, "type": "", "deprecated": false, @@ -11818,7 +12135,7 @@ "x-appwrite": { "method": "getQueueUsage", "group": "queue", - "weight": 144, + "weight": 147, "cookies": false, "type": "", "deprecated": false, @@ -11879,7 +12196,7 @@ "x-appwrite": { "method": "getQueueWebhooks", "group": "queue", - "weight": 132, + "weight": 135, "cookies": false, "type": "", "deprecated": false, @@ -11940,7 +12257,7 @@ "x-appwrite": { "method": "getStorage", "group": "storage", - "weight": 146, + "weight": 149, "cookies": false, "type": "", "deprecated": false, @@ -11990,7 +12307,7 @@ "x-appwrite": { "method": "getStorageLocal", "group": "storage", - "weight": 145, + "weight": 148, "cookies": false, "type": "", "deprecated": false, @@ -12040,7 +12357,7 @@ "x-appwrite": { "method": "getTime", "group": "health", - "weight": 131, + "weight": 134, "cookies": false, "type": "", "deprecated": false, @@ -12090,7 +12407,7 @@ "x-appwrite": { "method": "get", "group": null, - "weight": 118, + "weight": 121, "cookies": false, "type": "", "deprecated": false, @@ -12144,7 +12461,7 @@ "x-appwrite": { "method": "listCodes", "group": null, - "weight": 119, + "weight": 122, "cookies": false, "type": "", "deprecated": false, @@ -12198,7 +12515,7 @@ "x-appwrite": { "method": "listContinents", "group": null, - "weight": 123, + "weight": 126, "cookies": false, "type": "", "deprecated": false, @@ -12252,7 +12569,7 @@ "x-appwrite": { "method": "listCountries", "group": null, - "weight": 120, + "weight": 123, "cookies": false, "type": "", "deprecated": false, @@ -12306,7 +12623,7 @@ "x-appwrite": { "method": "listCountriesEU", "group": null, - "weight": 121, + "weight": 124, "cookies": false, "type": "", "deprecated": false, @@ -12360,7 +12677,7 @@ "x-appwrite": { "method": "listCountriesPhones", "group": null, - "weight": 122, + "weight": 125, "cookies": false, "type": "", "deprecated": false, @@ -12414,7 +12731,7 @@ "x-appwrite": { "method": "listCurrencies", "group": null, - "weight": 124, + "weight": 127, "cookies": false, "type": "", "deprecated": false, @@ -12468,7 +12785,7 @@ "x-appwrite": { "method": "listLanguages", "group": null, - "weight": 125, + "weight": 128, "cookies": false, "type": "", "deprecated": false, @@ -12522,7 +12839,7 @@ "x-appwrite": { "method": "listMessages", "group": "messages", - "weight": 356, + "weight": 359, "cookies": false, "type": "", "deprecated": false, @@ -12598,7 +12915,7 @@ "x-appwrite": { "method": "createEmail", "group": "messages", - "weight": 353, + "weight": 356, "cookies": false, "type": "", "deprecated": false, @@ -12757,7 +13074,7 @@ "x-appwrite": { "method": "updateEmail", "group": "messages", - "weight": 360, + "weight": 363, "cookies": false, "type": "", "deprecated": false, @@ -12913,7 +13230,7 @@ "x-appwrite": { "method": "createPush", "group": "messages", - "weight": 355, + "weight": 358, "cookies": false, "type": "", "deprecated": false, @@ -13109,7 +13426,7 @@ "x-appwrite": { "method": "updatePush", "group": "messages", - "weight": 362, + "weight": 365, "cookies": false, "type": "", "deprecated": false, @@ -13304,7 +13621,7 @@ "x-appwrite": { "method": "createSms", "group": "messages", - "weight": 354, + "weight": 357, "cookies": false, "type": "", "deprecated": false, @@ -13423,7 +13740,7 @@ "x-appwrite": { "method": "updateSms", "group": "messages", - "weight": 361, + "weight": 364, "cookies": false, "type": "", "deprecated": false, @@ -13538,7 +13855,7 @@ "x-appwrite": { "method": "getMessage", "group": "messages", - "weight": 359, + "weight": 362, "cookies": false, "type": "", "deprecated": false, @@ -13594,7 +13911,7 @@ "x-appwrite": { "method": "delete", "group": "messages", - "weight": 363, + "weight": 366, "cookies": false, "type": "", "deprecated": false, @@ -13655,7 +13972,7 @@ "x-appwrite": { "method": "listMessageLogs", "group": "logs", - "weight": 357, + "weight": 360, "cookies": false, "type": "", "deprecated": false, @@ -13728,7 +14045,7 @@ "x-appwrite": { "method": "listTargets", "group": "messages", - "weight": 358, + "weight": 361, "cookies": false, "type": "", "deprecated": false, @@ -13801,7 +14118,7 @@ "x-appwrite": { "method": "listProviders", "group": "providers", - "weight": 328, + "weight": 331, "cookies": false, "type": "", "deprecated": false, @@ -13877,7 +14194,7 @@ "x-appwrite": { "method": "createApnsProvider", "group": "providers", - "weight": 327, + "weight": 330, "cookies": false, "type": "", "deprecated": false, @@ -13993,7 +14310,7 @@ "x-appwrite": { "method": "updateApnsProvider", "group": "providers", - "weight": 340, + "weight": 343, "cookies": false, "type": "", "deprecated": false, @@ -14107,7 +14424,7 @@ "x-appwrite": { "method": "createFcmProvider", "group": "providers", - "weight": 326, + "weight": 329, "cookies": false, "type": "", "deprecated": false, @@ -14199,7 +14516,7 @@ "x-appwrite": { "method": "updateFcmProvider", "group": "providers", - "weight": 339, + "weight": 342, "cookies": false, "type": "", "deprecated": false, @@ -14289,7 +14606,7 @@ "x-appwrite": { "method": "createMailgunProvider", "group": "providers", - "weight": 318, + "weight": 321, "cookies": false, "type": "", "deprecated": false, @@ -14417,7 +14734,7 @@ "x-appwrite": { "method": "updateMailgunProvider", "group": "providers", - "weight": 331, + "weight": 334, "cookies": false, "type": "", "deprecated": false, @@ -14543,7 +14860,7 @@ "x-appwrite": { "method": "createMsg91Provider", "group": "providers", - "weight": 321, + "weight": 324, "cookies": false, "type": "", "deprecated": false, @@ -14647,7 +14964,7 @@ "x-appwrite": { "method": "updateMsg91Provider", "group": "providers", - "weight": 334, + "weight": 337, "cookies": false, "type": "", "deprecated": false, @@ -14749,7 +15066,7 @@ "x-appwrite": { "method": "createSendgridProvider", "group": "providers", - "weight": 319, + "weight": 322, "cookies": false, "type": "", "deprecated": false, @@ -14865,7 +15182,7 @@ "x-appwrite": { "method": "updateSendgridProvider", "group": "providers", - "weight": 332, + "weight": 335, "cookies": false, "type": "", "deprecated": false, @@ -14979,7 +15296,7 @@ "x-appwrite": { "method": "createSmtpProvider", "group": "providers", - "weight": 320, + "weight": 323, "cookies": false, "type": "", "deprecated": false, @@ -15139,7 +15456,7 @@ "x-appwrite": { "method": "updateSmtpProvider", "group": "providers", - "weight": 333, + "weight": 336, "cookies": false, "type": "", "deprecated": false, @@ -15296,7 +15613,7 @@ "x-appwrite": { "method": "createTelesignProvider", "group": "providers", - "weight": 322, + "weight": 325, "cookies": false, "type": "", "deprecated": false, @@ -15400,7 +15717,7 @@ "x-appwrite": { "method": "updateTelesignProvider", "group": "providers", - "weight": 335, + "weight": 338, "cookies": false, "type": "", "deprecated": false, @@ -15502,7 +15819,7 @@ "x-appwrite": { "method": "createTextmagicProvider", "group": "providers", - "weight": 323, + "weight": 326, "cookies": false, "type": "", "deprecated": false, @@ -15606,7 +15923,7 @@ "x-appwrite": { "method": "updateTextmagicProvider", "group": "providers", - "weight": 336, + "weight": 339, "cookies": false, "type": "", "deprecated": false, @@ -15708,7 +16025,7 @@ "x-appwrite": { "method": "createTwilioProvider", "group": "providers", - "weight": 324, + "weight": 327, "cookies": false, "type": "", "deprecated": false, @@ -15812,7 +16129,7 @@ "x-appwrite": { "method": "updateTwilioProvider", "group": "providers", - "weight": 337, + "weight": 340, "cookies": false, "type": "", "deprecated": false, @@ -15914,7 +16231,7 @@ "x-appwrite": { "method": "createVonageProvider", "group": "providers", - "weight": 325, + "weight": 328, "cookies": false, "type": "", "deprecated": false, @@ -16018,7 +16335,7 @@ "x-appwrite": { "method": "updateVonageProvider", "group": "providers", - "weight": 338, + "weight": 341, "cookies": false, "type": "", "deprecated": false, @@ -16118,7 +16435,7 @@ "x-appwrite": { "method": "getProvider", "group": "providers", - "weight": 330, + "weight": 333, "cookies": false, "type": "", "deprecated": false, @@ -16174,7 +16491,7 @@ "x-appwrite": { "method": "deleteProvider", "group": "providers", - "weight": 341, + "weight": 344, "cookies": false, "type": "", "deprecated": false, @@ -16235,7 +16552,7 @@ "x-appwrite": { "method": "listProviderLogs", "group": "providers", - "weight": 329, + "weight": 332, "cookies": false, "type": "", "deprecated": false, @@ -16308,7 +16625,7 @@ "x-appwrite": { "method": "listSubscriberLogs", "group": "subscribers", - "weight": 350, + "weight": 353, "cookies": false, "type": "", "deprecated": false, @@ -16381,7 +16698,7 @@ "x-appwrite": { "method": "listTopics", "group": "topics", - "weight": 343, + "weight": 346, "cookies": false, "type": "", "deprecated": false, @@ -16455,7 +16772,7 @@ "x-appwrite": { "method": "createTopic", "group": "topics", - "weight": 342, + "weight": 345, "cookies": false, "type": "", "deprecated": false, @@ -16544,7 +16861,7 @@ "x-appwrite": { "method": "getTopic", "group": "topics", - "weight": 345, + "weight": 348, "cookies": false, "type": "", "deprecated": false, @@ -16605,7 +16922,7 @@ "x-appwrite": { "method": "updateTopic", "group": "topics", - "weight": 346, + "weight": 349, "cookies": false, "type": "", "deprecated": false, @@ -16685,7 +17002,7 @@ "x-appwrite": { "method": "deleteTopic", "group": "topics", - "weight": 347, + "weight": 350, "cookies": false, "type": "", "deprecated": false, @@ -16746,7 +17063,7 @@ "x-appwrite": { "method": "listTopicLogs", "group": "topics", - "weight": 344, + "weight": 347, "cookies": false, "type": "", "deprecated": false, @@ -16819,7 +17136,7 @@ "x-appwrite": { "method": "listSubscribers", "group": "subscribers", - "weight": 349, + "weight": 352, "cookies": false, "type": "", "deprecated": false, @@ -16901,7 +17218,7 @@ "x-appwrite": { "method": "createSubscriber", "group": "subscribers", - "weight": 348, + "weight": 351, "cookies": false, "type": "", "deprecated": false, @@ -16991,7 +17308,7 @@ "x-appwrite": { "method": "getSubscriber", "group": "subscribers", - "weight": 351, + "weight": 354, "cookies": false, "type": "", "deprecated": false, @@ -17055,7 +17372,7 @@ "x-appwrite": { "method": "deleteSubscriber", "group": "subscribers", - "weight": 352, + "weight": 355, "cookies": false, "type": "", "deprecated": false, @@ -17128,7 +17445,7 @@ "x-appwrite": { "method": "list", "group": "sites", - "weight": 401, + "weight": 404, "cookies": false, "type": "", "deprecated": false, @@ -17201,7 +17518,7 @@ "x-appwrite": { "method": "create", "group": "sites", - "weight": 399, + "weight": 402, "cookies": false, "type": "", "deprecated": false, @@ -17466,7 +17783,7 @@ "x-appwrite": { "method": "listFrameworks", "group": "frameworks", - "weight": 404, + "weight": 407, "cookies": false, "type": "", "deprecated": false, @@ -17516,7 +17833,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "frameworks", - "weight": 427, + "weight": 430, "cookies": false, "type": "", "deprecated": false, @@ -17567,7 +17884,7 @@ "x-appwrite": { "method": "get", "group": "sites", - "weight": 400, + "weight": 403, "cookies": false, "type": "", "deprecated": false, @@ -17627,7 +17944,7 @@ "x-appwrite": { "method": "update", "group": "sites", - "weight": 402, + "weight": 405, "cookies": false, "type": "", "deprecated": false, @@ -17887,7 +18204,7 @@ "x-appwrite": { "method": "delete", "group": "sites", - "weight": 403, + "weight": 406, "cookies": false, "type": "", "deprecated": false, @@ -17949,7 +18266,7 @@ "x-appwrite": { "method": "updateSiteDeployment", "group": "sites", - "weight": 410, + "weight": 413, "cookies": false, "type": "", "deprecated": false, @@ -18027,7 +18344,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 409, + "weight": 412, "cookies": false, "type": "", "deprecated": false, @@ -18108,7 +18425,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 405, + "weight": 408, "cookies": false, "type": "upload", "deprecated": false, @@ -18209,7 +18526,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 413, + "weight": 416, "cookies": false, "type": "", "deprecated": false, @@ -18289,7 +18606,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 406, + "weight": 409, "cookies": false, "type": "", "deprecated": false, @@ -18396,7 +18713,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 407, + "weight": 410, "cookies": false, "type": "", "deprecated": false, @@ -18494,7 +18811,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 408, + "weight": 411, "cookies": false, "type": "", "deprecated": false, @@ -18557,7 +18874,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 411, + "weight": 414, "cookies": false, "type": "", "deprecated": false, @@ -18625,7 +18942,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 412, + "weight": 415, "cookies": false, "type": "location", "deprecated": false, @@ -18712,7 +19029,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 414, + "weight": 417, "cookies": false, "type": "", "deprecated": false, @@ -18780,7 +19097,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 416, + "weight": 419, "cookies": false, "type": "", "deprecated": false, @@ -18852,7 +19169,7 @@ "x-appwrite": { "method": "getLog", "group": "logs", - "weight": 415, + "weight": 418, "cookies": false, "type": "", "deprecated": false, @@ -18917,7 +19234,7 @@ "x-appwrite": { "method": "deleteLog", "group": "logs", - "weight": 417, + "weight": 420, "cookies": false, "type": "", "deprecated": false, @@ -18985,7 +19302,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 420, + "weight": 423, "cookies": false, "type": "", "deprecated": false, @@ -19045,7 +19362,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 418, + "weight": 421, "cookies": false, "type": "", "deprecated": false, @@ -19136,7 +19453,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 419, + "weight": 422, "cookies": false, "type": "", "deprecated": false, @@ -19204,7 +19521,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 421, + "weight": 424, "cookies": false, "type": "", "deprecated": false, @@ -19297,7 +19614,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 422, + "weight": 425, "cookies": false, "type": "", "deprecated": false, @@ -19365,7 +19682,7 @@ "x-appwrite": { "method": "listBuckets", "group": "buckets", - "weight": 203, + "weight": 206, "cookies": false, "type": "", "deprecated": false, @@ -19438,7 +19755,7 @@ "x-appwrite": { "method": "createBucket", "group": "buckets", - "weight": 202, + "weight": 205, "cookies": false, "type": "", "deprecated": false, @@ -19576,7 +19893,7 @@ "x-appwrite": { "method": "getBucket", "group": "buckets", - "weight": 204, + "weight": 207, "cookies": false, "type": "", "deprecated": false, @@ -19636,7 +19953,7 @@ "x-appwrite": { "method": "updateBucket", "group": "buckets", - "weight": 205, + "weight": 208, "cookies": false, "type": "", "deprecated": false, @@ -19770,7 +20087,7 @@ "x-appwrite": { "method": "deleteBucket", "group": "buckets", - "weight": 206, + "weight": 209, "cookies": false, "type": "", "deprecated": false, @@ -19830,7 +20147,7 @@ "x-appwrite": { "method": "listFiles", "group": "files", - "weight": 208, + "weight": 211, "cookies": false, "type": "", "deprecated": false, @@ -19915,7 +20232,7 @@ "x-appwrite": { "method": "createFile", "group": "files", - "weight": 207, + "weight": 210, "cookies": false, "type": "upload", "deprecated": false, @@ -20007,7 +20324,7 @@ "x-appwrite": { "method": "getFile", "group": "files", - "weight": 209, + "weight": 212, "cookies": false, "type": "", "deprecated": false, @@ -20079,7 +20396,7 @@ "x-appwrite": { "method": "updateFile", "group": "files", - "weight": 214, + "weight": 217, "cookies": false, "type": "", "deprecated": false, @@ -20170,7 +20487,7 @@ "x-appwrite": { "method": "deleteFile", "group": "files", - "weight": 215, + "weight": 218, "cookies": false, "type": "", "deprecated": false, @@ -20242,7 +20559,7 @@ "x-appwrite": { "method": "getFileDownload", "group": "files", - "weight": 211, + "weight": 214, "cookies": false, "type": "location", "deprecated": false, @@ -20287,6 +20604,15 @@ "type": "string", "x-example": "", "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "type": "string", + "x-example": "", + "default": "", + "in": "query" } ] } @@ -20314,7 +20640,7 @@ "x-appwrite": { "method": "getFilePreview", "group": "files", - "weight": 210, + "weight": 213, "cookies": false, "type": "location", "deprecated": false, @@ -20487,6 +20813,15 @@ "x-enum-keys": [], "default": "", "in": "query" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "type": "string", + "x-example": "", + "default": "", + "in": "query" } ] } @@ -20514,7 +20849,7 @@ "x-appwrite": { "method": "getFileView", "group": "files", - "weight": 212, + "weight": 215, "cookies": false, "type": "location", "deprecated": false, @@ -20559,6 +20894,15 @@ "type": "string", "x-example": "", "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "type": "string", + "x-example": "", + "default": "", + "in": "query" } ] } @@ -20586,7 +20930,7 @@ "x-appwrite": { "method": "list", "group": "teams", - "weight": 219, + "weight": 222, "cookies": false, "type": "", "deprecated": false, @@ -20663,7 +21007,7 @@ "x-appwrite": { "method": "create", "group": "teams", - "weight": 218, + "weight": 221, "cookies": false, "type": "", "deprecated": false, @@ -20755,7 +21099,7 @@ "x-appwrite": { "method": "get", "group": "teams", - "weight": 220, + "weight": 223, "cookies": false, "type": "", "deprecated": false, @@ -20819,7 +21163,7 @@ "x-appwrite": { "method": "updateName", "group": "teams", - "weight": 222, + "weight": 225, "cookies": false, "type": "", "deprecated": false, @@ -20896,7 +21240,7 @@ "x-appwrite": { "method": "delete", "group": "teams", - "weight": 224, + "weight": 227, "cookies": false, "type": "", "deprecated": false, @@ -20960,7 +21304,7 @@ "x-appwrite": { "method": "listMemberships", "group": "memberships", - "weight": 226, + "weight": 229, "cookies": false, "type": "", "deprecated": false, @@ -21045,7 +21389,7 @@ "x-appwrite": { "method": "createMembership", "group": "memberships", - "weight": 225, + "weight": 228, "cookies": false, "type": "", "deprecated": false, @@ -21160,7 +21504,7 @@ "x-appwrite": { "method": "getMembership", "group": "memberships", - "weight": 227, + "weight": 230, "cookies": false, "type": "", "deprecated": false, @@ -21232,7 +21576,7 @@ "x-appwrite": { "method": "updateMembership", "group": "memberships", - "weight": 228, + "weight": 231, "cookies": false, "type": "", "deprecated": false, @@ -21320,7 +21664,7 @@ "x-appwrite": { "method": "deleteMembership", "group": "memberships", - "weight": 230, + "weight": 233, "cookies": false, "type": "", "deprecated": false, @@ -21394,7 +21738,7 @@ "x-appwrite": { "method": "updateMembershipStatus", "group": "memberships", - "weight": 229, + "weight": 232, "cookies": false, "type": "", "deprecated": false, @@ -21489,7 +21833,7 @@ "x-appwrite": { "method": "getPrefs", "group": "teams", - "weight": 221, + "weight": 224, "cookies": false, "type": "", "deprecated": false, @@ -21551,7 +21895,7 @@ "x-appwrite": { "method": "updatePrefs", "group": "teams", - "weight": 223, + "weight": 226, "cookies": false, "type": "", "deprecated": false, @@ -21631,7 +21975,7 @@ "x-appwrite": { "method": "list", "group": "files", - "weight": 436, + "weight": 438, "cookies": false, "type": "", "deprecated": false, @@ -21703,7 +22047,7 @@ "tags": [ "tokens" ], - "description": "Create a new token. A token is linked to a file or a bucket and manages permissions for those file(s). Token can be passed as a header or request get parameter.", + "description": "Create a new token. A token is linked to a file. Token can be passed as a header or request get parameter.", "responses": { "201": { "description": "ResourceToken", @@ -21715,12 +22059,12 @@ "x-appwrite": { "method": "createFileToken", "group": "files", - "weight": 433, + "weight": 436, "cookies": false, "type": "", "deprecated": false, "demo": "tokens\/create-file-token.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new token. A token is linked to a file or a bucket and manages permissions for those file(s). Token can be passed as a header or request get parameter.", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new token. A token is linked to a file. Token can be passed as a header or request get parameter.", "rate-limit": 60, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -21773,15 +22117,6 @@ "default": null, "x-example": null, "x-nullable": true - }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": [], - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - } } } } @@ -21789,282 +22124,6 @@ ] } }, - "\/tokens\/{tokenId}": { - "get": { - "summary": "Get token", - "operationId": "tokensGet", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "tokens" - ], - "description": "Get a token by its unique ID.", - "responses": { - "200": { - "description": "ResourceToken", - "schema": { - "$ref": "#\/definitions\/resourceToken" - } - } - }, - "x-appwrite": { - "method": "get", - "group": "tokens", - "weight": 434, - "cookies": false, - "type": "", - "deprecated": false, - "demo": "tokens\/get.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterGet a token by its unique ID.", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", - "platforms": [ - "client", - "server", - "server" - ], - "packaging": false, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "tokenId", - "description": "Token ID.", - "required": true, - "type": "string", - "x-example": "", - "in": "path" - } - ] - }, - "patch": { - "summary": "Update token", - "operationId": "tokensUpdate", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "tokens" - ], - "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date or permissions.", - "responses": { - "200": { - "description": "ResourceToken", - "schema": { - "$ref": "#\/definitions\/resourceToken" - } - } - }, - "x-appwrite": { - "method": "update", - "group": "tokens", - "weight": 437, - "cookies": false, - "type": "", - "deprecated": false, - "demo": "tokens\/update.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterUpdate a token by its unique ID. Use this endpoint to update a token's expiry date or permissions.", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "tokens.write", - "platforms": [ - "client", - "server", - "server" - ], - "packaging": false, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "tokenId", - "description": "Token unique ID.", - "required": true, - "type": "string", - "x-example": "", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "expire": { - "type": "string", - "description": "File token expiry date", - "default": null, - "x-example": null, - "x-nullable": true - }, - "permissions": { - "type": "array", - "description": "An array of permission string. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": null, - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - } - } - } - } - } - ] - }, - "delete": { - "summary": "Delete token", - "operationId": "tokensDelete", - "consumes": [ - "application\/json" - ], - "produces": [], - "tags": [ - "tokens" - ], - "description": "Delete a token by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "x-appwrite": { - "method": "delete", - "group": "tokens", - "weight": 438, - "cookies": false, - "type": "", - "deprecated": false, - "demo": "tokens\/delete.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterDelete a token by its unique ID.", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "tokens.write", - "platforms": [ - "client", - "server", - "server" - ], - "packaging": false, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "tokenId", - "description": "Token ID.", - "required": true, - "type": "string", - "x-example": "", - "in": "path" - } - ] - } - }, - "\/tokens\/{tokenId}\/jwt": { - "get": { - "summary": "Get token as JWT", - "operationId": "tokensGetJWT", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "tokens" - ], - "description": "Get a JWT based token by its unique ID. You can use the JWT to authenticate on behalf of the user.", - "responses": { - "200": { - "description": "JWT", - "schema": { - "$ref": "#\/definitions\/jwt" - } - } - }, - "x-appwrite": { - "method": "getJWT", - "group": "tokens", - "weight": 435, - "cookies": false, - "type": "", - "deprecated": false, - "demo": "tokens\/get-j-w-t.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterGet a JWT based token by its unique ID. You can use the JWT to authenticate on behalf of the user.", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", - "platforms": [ - "client", - "server", - "server" - ], - "packaging": false, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "tokenId", - "description": "File token ID.", - "required": true, - "type": "string", - "x-example": "", - "in": "path" - } - ] - } - }, "\/users": { "get": { "summary": "List users", @@ -22088,7 +22147,7 @@ "x-appwrite": { "method": "list", "group": "users", - "weight": 241, + "weight": 244, "cookies": false, "type": "", "deprecated": false, @@ -22161,7 +22220,7 @@ "x-appwrite": { "method": "create", "group": "users", - "weight": 232, + "weight": 235, "cookies": false, "type": "", "deprecated": false, @@ -22257,7 +22316,7 @@ "x-appwrite": { "method": "createArgon2User", "group": "users", - "weight": 235, + "weight": 238, "cookies": false, "type": "", "deprecated": false, @@ -22349,7 +22408,7 @@ "x-appwrite": { "method": "createBcryptUser", "group": "users", - "weight": 233, + "weight": 236, "cookies": false, "type": "", "deprecated": false, @@ -22439,7 +22498,7 @@ "x-appwrite": { "method": "listIdentities", "group": "identities", - "weight": 249, + "weight": 252, "cookies": false, "type": "", "deprecated": false, @@ -22509,7 +22568,7 @@ "x-appwrite": { "method": "deleteIdentity", "group": "identities", - "weight": 272, + "weight": 275, "cookies": false, "type": "", "deprecated": false, @@ -22571,7 +22630,7 @@ "x-appwrite": { "method": "createMD5User", "group": "users", - "weight": 234, + "weight": 237, "cookies": false, "type": "", "deprecated": false, @@ -22663,7 +22722,7 @@ "x-appwrite": { "method": "createPHPassUser", "group": "users", - "weight": 237, + "weight": 240, "cookies": false, "type": "", "deprecated": false, @@ -22755,7 +22814,7 @@ "x-appwrite": { "method": "createScryptUser", "group": "users", - "weight": 238, + "weight": 241, "cookies": false, "type": "", "deprecated": false, @@ -22882,7 +22941,7 @@ "x-appwrite": { "method": "createScryptModifiedUser", "group": "users", - "weight": 239, + "weight": 242, "cookies": false, "type": "", "deprecated": false, @@ -22995,7 +23054,7 @@ "x-appwrite": { "method": "createSHAUser", "group": "users", - "weight": 236, + "weight": 239, "cookies": false, "type": "", "deprecated": false, @@ -23106,7 +23165,7 @@ "x-appwrite": { "method": "get", "group": "users", - "weight": 242, + "weight": 245, "cookies": false, "type": "", "deprecated": false, @@ -23161,7 +23220,7 @@ "x-appwrite": { "method": "delete", "group": "users", - "weight": 270, + "weight": 273, "cookies": false, "type": "", "deprecated": false, @@ -23223,7 +23282,7 @@ "x-appwrite": { "method": "updateEmail", "group": "users", - "weight": 255, + "weight": 258, "cookies": false, "type": "", "deprecated": false, @@ -23303,7 +23362,7 @@ "x-appwrite": { "method": "createJWT", "group": "sessions", - "weight": 273, + "weight": 276, "cookies": false, "type": "", "deprecated": false, @@ -23386,7 +23445,7 @@ "x-appwrite": { "method": "updateLabels", "group": "users", - "weight": 251, + "weight": 254, "cookies": false, "type": "", "deprecated": false, @@ -23467,7 +23526,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 247, + "weight": 250, "cookies": false, "type": "", "deprecated": false, @@ -23539,7 +23598,7 @@ "x-appwrite": { "method": "listMemberships", "group": "memberships", - "weight": 246, + "weight": 249, "cookies": false, "type": "", "deprecated": false, @@ -23622,7 +23681,7 @@ "x-appwrite": { "method": "updateMfa", "group": "users", - "weight": 260, + "weight": 263, "cookies": false, "type": "", "deprecated": false, @@ -23697,7 +23756,7 @@ "x-appwrite": { "method": "deleteMfaAuthenticator", "group": "mfa", - "weight": 265, + "weight": 268, "cookies": false, "type": "", "deprecated": false, @@ -23770,7 +23829,7 @@ "x-appwrite": { "method": "listMfaFactors", "group": "mfa", - "weight": 261, + "weight": 264, "cookies": false, "type": "", "deprecated": false, @@ -23830,7 +23889,7 @@ "x-appwrite": { "method": "getMfaRecoveryCodes", "group": "mfa", - "weight": 262, + "weight": 265, "cookies": false, "type": "", "deprecated": false, @@ -23890,7 +23949,7 @@ "x-appwrite": { "method": "updateMfaRecoveryCodes", "group": "mfa", - "weight": 264, + "weight": 267, "cookies": false, "type": "", "deprecated": false, @@ -23950,7 +24009,7 @@ "x-appwrite": { "method": "createMfaRecoveryCodes", "group": "mfa", - "weight": 263, + "weight": 266, "cookies": false, "type": "", "deprecated": false, @@ -24012,7 +24071,7 @@ "x-appwrite": { "method": "updateName", "group": "users", - "weight": 253, + "weight": 256, "cookies": false, "type": "", "deprecated": false, @@ -24092,7 +24151,7 @@ "x-appwrite": { "method": "updatePassword", "group": "users", - "weight": 254, + "weight": 257, "cookies": false, "type": "", "deprecated": false, @@ -24172,7 +24231,7 @@ "x-appwrite": { "method": "updatePhone", "group": "users", - "weight": 256, + "weight": 259, "cookies": false, "type": "", "deprecated": false, @@ -24250,7 +24309,7 @@ "x-appwrite": { "method": "getPrefs", "group": "users", - "weight": 243, + "weight": 246, "cookies": false, "type": "", "deprecated": false, @@ -24310,7 +24369,7 @@ "x-appwrite": { "method": "updatePrefs", "group": "users", - "weight": 258, + "weight": 261, "cookies": false, "type": "", "deprecated": false, @@ -24388,7 +24447,7 @@ "x-appwrite": { "method": "listSessions", "group": "sessions", - "weight": 245, + "weight": 248, "cookies": false, "type": "", "deprecated": false, @@ -24448,7 +24507,7 @@ "x-appwrite": { "method": "createSession", "group": "sessions", - "weight": 266, + "weight": 269, "cookies": false, "type": "", "deprecated": false, @@ -24503,7 +24562,7 @@ "x-appwrite": { "method": "deleteSessions", "group": "sessions", - "weight": 269, + "weight": 272, "cookies": false, "type": "", "deprecated": false, @@ -24560,7 +24619,7 @@ "x-appwrite": { "method": "deleteSession", "group": "sessions", - "weight": 268, + "weight": 271, "cookies": false, "type": "", "deprecated": false, @@ -24630,7 +24689,7 @@ "x-appwrite": { "method": "updateStatus", "group": "users", - "weight": 250, + "weight": 253, "cookies": false, "type": "", "deprecated": false, @@ -24708,7 +24767,7 @@ "x-appwrite": { "method": "listTargets", "group": "targets", - "weight": 248, + "weight": 251, "cookies": false, "type": "", "deprecated": false, @@ -24781,7 +24840,7 @@ "x-appwrite": { "method": "createTarget", "group": "targets", - "weight": 240, + "weight": 243, "cookies": false, "type": "", "deprecated": false, @@ -24893,7 +24952,7 @@ "x-appwrite": { "method": "getTarget", "group": "targets", - "weight": 244, + "weight": 247, "cookies": false, "type": "", "deprecated": false, @@ -24962,7 +25021,7 @@ "x-appwrite": { "method": "updateTarget", "group": "targets", - "weight": 259, + "weight": 262, "cookies": false, "type": "", "deprecated": false, @@ -25053,7 +25112,7 @@ "x-appwrite": { "method": "deleteTarget", "group": "targets", - "weight": 271, + "weight": 274, "cookies": false, "type": "", "deprecated": false, @@ -25124,7 +25183,7 @@ "x-appwrite": { "method": "createToken", "group": "sessions", - "weight": 267, + "weight": 270, "cookies": false, "type": "", "deprecated": false, @@ -25207,7 +25266,7 @@ "x-appwrite": { "method": "updateEmailVerification", "group": "users", - "weight": 257, + "weight": 260, "cookies": false, "type": "", "deprecated": false, @@ -25287,7 +25346,7 @@ "x-appwrite": { "method": "updatePhoneVerification", "group": "users", - "weight": 252, + "weight": 255, "cookies": false, "type": "", "deprecated": false, @@ -25346,90 +25405,71 @@ "tags": [ { "name": "account", - "description": "The Account service allows you to authenticate and manage a user account.", - "x-globalAttributes": [] + "description": "The Account service allows you to authenticate and manage a user account." }, { "name": "avatars", - "description": "The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars.", - "x-globalAttributes": [] + "description": "The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars." }, { "name": "databases", - "description": "The Databases service allows you to create structured collections of documents, query and filter lists of documents", - "x-globalAttributes": [ - "databaseId" - ] + "description": "The Databases service allows you to create structured collections of documents, query and filter lists of documents" }, { "name": "locale", - "description": "The Locale service allows you to customize your app based on your users' location.", - "x-globalAttributes": [] + "description": "The Locale service allows you to customize your app based on your users' location." }, { "name": "health", - "description": "The Health service allows you to both validate and monitor your Appwrite server's health.", - "x-globalAttributes": [] + "description": "The Health service allows you to both validate and monitor your Appwrite server's health." }, { "name": "projects", - "description": "The Project service allows you to manage all the projects in your Appwrite server.", - "x-globalAttributes": [] + "description": "The Project service allows you to manage all the projects in your Appwrite server." }, { "name": "project", - "description": "The Project service allows you to manage all the projects in your Appwrite server.", - "x-globalAttributes": [] + "description": "The Project service allows you to manage all the projects in your Appwrite server." }, { "name": "storage", - "description": "The Storage service allows you to manage your project files.", - "x-globalAttributes": [] + "description": "The Storage service allows you to manage your project files." }, { "name": "teams", - "description": "The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources", - "x-globalAttributes": [] + "description": "The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources" }, { "name": "users", - "description": "The Users service allows you to manage your project users.", - "x-globalAttributes": [] + "description": "The Users service allows you to manage your project users." }, { "name": "sites", - "description": "The Sites Service allows you view, create and manage your web applications.", - "x-globalAttributes": [] + "description": "The Sites Service allows you view, create and manage your web applications." }, { "name": "functions", - "description": "The Functions Service allows you view, create and manage your Cloud Functions.", - "x-globalAttributes": [] + "description": "The Functions Service allows you view, create and manage your Cloud Functions." }, { "name": "proxy", - "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration.", - "x-globalAttributes": [] + "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration." }, { "name": "graphql", - "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL.", - "x-globalAttributes": [] + "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL." }, { "name": "console", - "description": "The Console service allows you to interact with console relevant informations.", - "x-globalAttributes": [] + "description": "The Console service allows you to interact with console relevant informations." }, { "name": "migrations", - "description": "The Migrations service allows you to migrate third-party data to your Appwrite project.", - "x-globalAttributes": [] + "description": "The Migrations service allows you to migrate third-party data to your Appwrite project." }, { "name": "messaging", - "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.).", - "x-globalAttributes": [] + "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.)." } ], "definitions": { @@ -28318,16 +28358,6 @@ "description": "Token creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "$permissions": { - "type": "array", - "description": "Token permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "x-example": [ - "read(\"any\")" - ] - }, "resourceId": { "type": "string", "description": "Resource ID.", @@ -28343,6 +28373,11 @@ "description": "Token expiration date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, + "secret": { + "type": "string", + "description": "JWT encoded string.", + "x-example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + }, "accessedAt": { "type": "string", "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", @@ -28352,10 +28387,10 @@ "required": [ "$id", "$createdAt", - "$permissions", "resourceId", "resourceType", "expire", + "secret", "accessedAt" ] }, diff --git a/app/controllers/api/storage.php b/app/controllers/api/storage.php index 71b11d52f8..b6e89a1591 100644 --- a/app/controllers/api/storage.php +++ b/app/controllers/api/storage.php @@ -951,12 +951,14 @@ App::get('/v1/storage/buckets/:bucketId/files/:fileId/preview') ->param('rotation', 0, new Range(-360, 360), 'Preview image rotation in degrees. Pass an integer between -360 and 360.', true) ->param('background', '', new HexColor(), 'Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.', true) ->param('output', '', new WhiteList(\array_keys(Config::getParam('storage-outputs')), true), 'Output format type (jpeg, jpg, png, gif and webp).', true) + // NOTE: this is only for the sdk generator and is not used in the action below and is utilised in `resources.php` for `resourceToken`. + ->param('token', '', new Text(512), 'File token for accessing this file.', true) ->inject('response') ->inject('dbForProject') ->inject('resourceToken') ->inject('deviceForFiles') ->inject('deviceForLocal') - ->action(function (string $bucketId, string $fileId, int $width, int $height, string $gravity, int $quality, int $borderWidth, string $borderColor, int $borderRadius, float $opacity, int $rotation, string $background, string $output, Response $response, Database $dbForProject, Document $resourceToken, Device $deviceForFiles, Device $deviceForLocal) { + ->action(function (string $bucketId, string $fileId, int $width, int $height, string $gravity, int $quality, int $borderWidth, string $borderColor, int $borderRadius, float $opacity, int $rotation, string $background, string $output, ?string $token, Response $response, Database $dbForProject, Document $resourceToken, Device $deviceForFiles, Device $deviceForLocal) { if (!\extension_loaded('imagick')) { throw new Exception(Exception::GENERAL_SERVER_ERROR, 'Imagick extension is missing'); @@ -1129,13 +1131,15 @@ App::get('/v1/storage/buckets/:bucketId/files/:fileId/download') )) ->param('bucketId', '', new UID(), 'Storage bucket ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).') ->param('fileId', '', new UID(), 'File ID.') + // NOTE: this is only for the sdk generator and is not used in the action below and is utilised in `resources.php` for `resourceToken`. + ->param('token', '', new Text(512), 'File token for accessing this file.', true) ->inject('request') ->inject('response') ->inject('dbForProject') ->inject('mode') ->inject('resourceToken') ->inject('deviceForFiles') - ->action(function (string $bucketId, string $fileId, Request $request, Response $response, Database $dbForProject, string $mode, Document $resourceToken, Device $deviceForFiles) { + ->action(function (string $bucketId, string $fileId, ?string $token, Request $request, Response $response, Database $dbForProject, string $mode, Document $resourceToken, Device $deviceForFiles) { $bucket = Authorization::skip(fn () => $dbForProject->getDocument('buckets', $bucketId)); @@ -1284,13 +1288,15 @@ App::get('/v1/storage/buckets/:bucketId/files/:fileId/view') )) ->param('bucketId', '', new UID(), 'Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).') ->param('fileId', '', new UID(), 'File ID.') + // NOTE: this is only for the sdk generator and is not used in the action below and is utilised in `resources.php` for `resourceToken`. + ->param('token', '', new Text(512), 'File token for accessing this file.', true) ->inject('response') ->inject('request') ->inject('dbForProject') ->inject('mode') ->inject('resourceToken') ->inject('deviceForFiles') - ->action(function (string $bucketId, string $fileId, Response $response, Request $request, Database $dbForProject, string $mode, Document $resourceToken, Device $deviceForFiles) { + ->action(function (string $bucketId, string $fileId, ?string $token, Response $response, Request $request, Database $dbForProject, string $mode, Document $resourceToken, Device $deviceForFiles) { $bucket = Authorization::skip(fn () => $dbForProject->getDocument('buckets', $bucketId)); $isAPIKey = Auth::isAppUser(Authorization::getRoles()); diff --git a/app/init/resources.php b/app/init/resources.php index 1b941b63b3..aa82f26b71 100644 --- a/app/init/resources.php +++ b/app/init/resources.php @@ -918,38 +918,52 @@ App::setResource('resourceToken', function ($project, $dbForProject, $request) { } $tokenId = $payload['tokenId'] ?? ''; - $secret = $payload['secret'] ?? ''; - if (empty($tokenId) || empty($secret)) { + if (empty($tokenId)) { return new Document([]); } $token = Authorization::skip(fn () => $dbForProject->getDocument('resourceTokens', $tokenId)); - if ($token->isEmpty() || $token->getAttribute('secret') !== $secret) { + if ($token->isEmpty()) { return new Document([]); } - if ($token->getAttribute('resourceType') === TOKENS_RESOURCE_TYPE_FILES) { - $internalIds = explode(':', $token->getAttribute('resourceInternalId')); - $ids = explode(':', $token->getAttribute('resourceId')); + $expiry = $token->getAttribute('expire'); - if (count($internalIds) !== 2 || count($ids) !== 2) { + if ($expiry !== null) { + $now = new \DateTime(); + $expiryDate = new \DateTime($expiry); + + if ($expiryDate < $now) { return new Document([]); } - - $accessedAt = $token->getAttribute('accessedAt', 0); - if (empty($accessedAt) || DatabaseDateTime::formatTz(DatabaseDateTime::addSeconds(new \DateTime(), - APP_RESOURCE_TOKEN_ACCESS)) > $accessedAt) { - $token->setAttribute('accessedAt', DatabaseDateTime::now()); - Authorization::skip(fn () => $dbForProject->updateDocument('resourceTokens', $token->getId(), $token)); - } - - return new Document([ - 'bucketId' => $ids[0], - 'fileId' => $ids[1], - 'bucketInternalId' => $internalIds[0], - 'fileInternalId' => $internalIds[1], - ]); } + + return match ($token->getAttribute('resourceType')) { + TOKENS_RESOURCE_TYPE_FILES => (function () use ($token, $dbForProject) { + $internalIds = explode(':', $token->getAttribute('resourceInternalId')); + $ids = explode(':', $token->getAttribute('resourceId')); + + if (count($internalIds) !== 2 || count($ids) !== 2) { + return new Document([]); + } + + $accessedAt = $token->getAttribute('accessedAt', 0); + if (empty($accessedAt) || DatabaseDateTime::formatTz(DatabaseDateTime::addSeconds(new \DateTime(), - APP_RESOURCE_TOKEN_ACCESS)) > $accessedAt) { + $token->setAttribute('accessedAt', DatabaseDateTime::now()); + Authorization::skip(fn () => $dbForProject->updateDocument('resourceTokens', $token->getId(), $token)); + } + + return new Document([ + 'bucketId' => $ids[0], + 'fileId' => $ids[1], + 'bucketInternalId' => $internalIds[0], + 'fileInternalId' => $internalIds[1], + ]); + })(), + + default => throw new Exception(Exception::TOKEN_RESOURCE_TYPE_INVALID), + }; } return new Document([]); }, ['project', 'dbForProject', 'request']); diff --git a/src/Appwrite/Extend/Exception.php b/src/Appwrite/Extend/Exception.php index 7df9134c9f..296434ed57 100644 --- a/src/Appwrite/Extend/Exception.php +++ b/src/Appwrite/Extend/Exception.php @@ -322,7 +322,7 @@ class Exception extends \Exception /** Tokens */ public const TOKEN_NOT_FOUND = 'token_not_found'; public const TOKEN_EXPIRED = 'token_expired'; - + public const TOKEN_RESOURCE_TYPE_INVALID = 'token_resource_type_invalid'; protected string $type = ''; protected array $errors = []; diff --git a/src/Appwrite/Platform/Modules/Tokens/Http/Tokens/Buckets/Files/Create.php b/src/Appwrite/Platform/Modules/Tokens/Http/Tokens/Buckets/Files/Create.php index 4f63256ec8..0ac9424937 100644 --- a/src/Appwrite/Platform/Modules/Tokens/Http/Tokens/Buckets/Files/Create.php +++ b/src/Appwrite/Platform/Modules/Tokens/Http/Tokens/Buckets/Files/Create.php @@ -15,7 +15,6 @@ use Utopia\Database\Document; use Utopia\Database\Helpers\ID; use Utopia\Database\Validator\Authorization; use Utopia\Database\Validator\Datetime as DatetimeValidator; -use Utopia\Database\Validator\Permissions; use Utopia\Database\Validator\UID; use Utopia\Platform\Scope\HTTP; use Utopia\Validator\Nullable; @@ -49,7 +48,7 @@ class Create extends Action group: 'files', name: 'createFileToken', description: <<param('bucketId', '', new UID(), 'Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).') ->param('fileId', '', new UID(), 'File unique ID.') ->param('expire', null, new Nullable(new DatetimeValidator()), 'Token expiry date', true) - ->param('permissions', [], new Permissions(APP_LIMIT_ARRAY_PARAMS_SIZE, [Database::PERMISSION_READ, Database::PERMISSION_UPDATE, Database::PERMISSION_DELETE, Database::PERMISSION_WRITE]), 'An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).', true) ->inject('response') ->inject('dbForProject') - ->inject('user') ->inject('queueForEvents') ->callback([$this, 'action']); } - public function action(string $bucketId, string $fileId, ?string $expire, ?array $permissions, Response $response, Database $dbForProject, Document $user, Event $queueForEvents) + public function action(string $bucketId, string $fileId, ?string $expire, Response $response, Database $dbForProject, Event $queueForEvents): void { /** @@ -100,7 +97,6 @@ class Create extends Action 'resourceInternalId' => $bucket->getInternalId() . ':' . $file->getInternalId(), 'resourceType' => TOKENS_RESOURCE_TYPE_FILES, 'expire' => $expire, - '$permissions' => $permissions ])); $queueForEvents diff --git a/src/Appwrite/Platform/Modules/Tokens/Http/Tokens/Delete.php b/src/Appwrite/Platform/Modules/Tokens/Http/Tokens/Delete.php index 31bcd7f580..7a9fc8d712 100644 --- a/src/Appwrite/Platform/Modules/Tokens/Http/Tokens/Delete.php +++ b/src/Appwrite/Platform/Modules/Tokens/Http/Tokens/Delete.php @@ -45,7 +45,7 @@ class Delete extends Action description: <<setHttpMethod(Action::HTTP_REQUEST_METHOD_GET) - ->setHttpPath('/v1/tokens/:tokenId/jwt') - ->desc('Get token as JWT') - ->groups(['api', 'tokens']) - ->label('scope', 'tokens.read') - ->label('usage.metric', 'tokens.{scope}.requests.read') - ->label('usage.params', ['tokenId:{request.tokenId}']) - ->label('sdk', new Method( - namespace: 'tokens', - group: 'tokens', - name: 'getJWT', - description: <<param('tokenId', '', new UID(), 'File token ID.') - ->inject('response') - ->inject('dbForProject') - ->callback([$this, 'action']); - } - - public function action(string $tokenId, Response $response, Database $dbForProject) - { - $token = $dbForProject->getDocument('resourceTokens', $tokenId); - - if ($token->isEmpty()) { - throw new Exception(Exception::TOKEN_NOT_FOUND); - } - - // calculate maxAge based on expiry date - $maxAge = PHP_INT_MAX; - $expire = $token->getAttribute('expire'); - if ($expire !== null) { - $now = new \DateTime(); - $expiryDate = new \DateTime($expire); - if ($expiryDate < $now) { - throw new Exception(Exception::TOKEN_EXPIRED); - } - $maxAge = $expiryDate->getTimestamp() - $now->getTimestamp(); - } - - $jwt = new JWT(System::getEnv('_APP_OPENSSL_KEY_V1'), 'HS256', $maxAge, 10); // Instantiate with key, algo, maxAge and leeway. - - $response - ->setStatusCode(Response::STATUS_CODE_OK) - ->dynamic(new Document(['jwt' => $jwt->encode([ - 'resourceType' => $token->getAttribute('resourceType'), - 'resourceId' => $token->getAttribute('resourceId'), - 'resourceInternalId' => $token->getAttribute('resourceInternalId'), - 'tokenId' => $token->getId(), - 'secret' => $token->getAttribute('secret') - ])]), Response::MODEL_JWT); - } -} diff --git a/src/Appwrite/Platform/Modules/Tokens/Http/Tokens/Update.php b/src/Appwrite/Platform/Modules/Tokens/Http/Tokens/Update.php index 5e7a2df533..3392af69d1 100644 --- a/src/Appwrite/Platform/Modules/Tokens/Http/Tokens/Update.php +++ b/src/Appwrite/Platform/Modules/Tokens/Http/Tokens/Update.php @@ -2,7 +2,6 @@ namespace Appwrite\Platform\Modules\Tokens\Http\Tokens; -use Appwrite\Auth\Auth; use Appwrite\Event\Event; use Appwrite\Extend\Exception; use Appwrite\SDK\AuthType; @@ -11,11 +10,7 @@ use Appwrite\SDK\Method; use Appwrite\SDK\Response as SDKResponse; use Appwrite\Utopia\Response; use Utopia\Database\Database; -use Utopia\Database\Helpers\Permission; -use Utopia\Database\Helpers\Role; -use Utopia\Database\Validator\Authorization; use Utopia\Database\Validator\Datetime as DatetimeValidator; -use Utopia\Database\Validator\Permissions; use Utopia\Database\Validator\UID; use Utopia\Platform\Action; use Utopia\Platform\Scope\HTTP; @@ -50,9 +45,9 @@ class Update extends Action group: 'tokens', name: 'update', description: <<param('tokenId', '', new UID(), 'Token unique ID.') ->param('expire', null, new Nullable(new DatetimeValidator()), 'File token expiry date', true) - ->param('permissions', null, new Permissions(APP_LIMIT_ARRAY_PARAMS_SIZE, [Database::PERMISSION_READ, Database::PERMISSION_UPDATE, Database::PERMISSION_DELETE, Database::PERMISSION_WRITE]), 'An array of permission string. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).', true) ->inject('response') ->inject('dbForProject') ->inject('queueForEvents') ->callback([$this, 'action']); } - public function action(string $tokenId, ?string $expire, ?array $permissions, Response $response, Database $dbForProject, Event $queueForEvents) + public function action(string $tokenId, ?string $expire, Response $response, Database $dbForProject, Event $queueForEvents) { $token = $dbForProject->getDocument('resourceTokens', $tokenId); @@ -78,47 +72,11 @@ class Update extends Action throw new Exception(Exception::TOKEN_NOT_FOUND); } - // Map aggregate permissions into the multiple permissions they represent. - $permissions = Permission::aggregate($permissions, [ - Database::PERMISSION_READ, - Database::PERMISSION_UPDATE, - Database::PERMISSION_DELETE, - ]); - - // Users can only manage their own roles, API keys and Admin users can manage any - $roles = Authorization::getRoles(); - if (!Auth::isAppUser($roles) && !Auth::isPrivilegedUser($roles) && !\is_null($permissions)) { - foreach (Database::PERMISSIONS as $type) { - foreach ($permissions as $permission) { - $permission = Permission::parse($permission); - if ($permission->getPermission() != $type) { - continue; - } - $role = (new Role( - $permission->getRole(), - $permission->getIdentifier(), - $permission->getDimension() - ))->toString(); - if (!Authorization::isRole($role)) { - throw new Exception(Exception::USER_UNAUTHORIZED, 'Permissions must be one of: (' . \implode(', ', $roles) . ')'); - } - } - } - } - - if (\is_null($permissions)) { - $permissions = $token->getPermissions() ?? []; - } - - $token - ->setAttribute('expire', $expire) - ->setAttribute('$permissions', $permissions); + $token->setAttribute('expire', $expire); $token = $dbForProject->updateDocument('resourceTokens', $tokenId, $token); - $queueForEvents - ->setParam('tokenId', $token->getId()) - ; + $queueForEvents->setParam('tokenId', $token->getId()); $response->dynamic($token, Response::MODEL_RESOURCE_TOKEN); } diff --git a/src/Appwrite/Platform/Modules/Tokens/Services/Http.php b/src/Appwrite/Platform/Modules/Tokens/Services/Http.php index bbb85e85fd..ac58c110a5 100644 --- a/src/Appwrite/Platform/Modules/Tokens/Services/Http.php +++ b/src/Appwrite/Platform/Modules/Tokens/Services/Http.php @@ -6,7 +6,6 @@ use Appwrite\Platform\Modules\Tokens\Http\Tokens\Buckets\Files\Create as CreateF use Appwrite\Platform\Modules\Tokens\Http\Tokens\Buckets\Files\XList as ListFileTokens; use Appwrite\Platform\Modules\Tokens\Http\Tokens\Delete as DeleteToken; use Appwrite\Platform\Modules\Tokens\Http\Tokens\Get as GetToken; -use Appwrite\Platform\Modules\Tokens\Http\Tokens\JWT\Get as GetTokenJWT; use Appwrite\Platform\Modules\Tokens\Http\Tokens\Update as UpdateToken; use Utopia\Platform\Service; @@ -18,7 +17,6 @@ class Http extends Service $this ->addAction(CreateFileToken::getName(), new CreateFileToken()) ->addAction(GetToken::getName(), new GetToken()) - ->addAction(GetTokenJWT::getName(), new GetTokenJWT()) ->addAction(ListFileTokens::getName(), new ListFileTokens()) ->addAction(UpdateToken::getName(), new UpdateToken()) ->addAction(DeleteToken::getName(), new DeleteToken()) diff --git a/src/Appwrite/Utopia/Response/Model/ResourceToken.php b/src/Appwrite/Utopia/Response/Model/ResourceToken.php index 083a3e5f2d..ef186c3d0b 100644 --- a/src/Appwrite/Utopia/Response/Model/ResourceToken.php +++ b/src/Appwrite/Utopia/Response/Model/ResourceToken.php @@ -2,8 +2,11 @@ namespace Appwrite\Utopia\Response\Model; +use Ahc\Jwt\JWT; use Appwrite\Utopia\Response; use Appwrite\Utopia\Response\Model; +use Utopia\Database\Document; +use Utopia\System\System; class ResourceToken extends Model { @@ -22,13 +25,6 @@ class ResourceToken extends Model 'default' => '', 'example' => self::TYPE_DATETIME_EXAMPLE, ]) - ->addRule('$permissions', [ - 'type' => self::TYPE_STRING, - 'description' => 'Token permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).', - 'default' => '', - 'example' => ['read("any")'], - 'array' => true, - ]) ->addRule('resourceId', [ 'type' => self::TYPE_STRING, 'description' => 'Resource ID.', @@ -47,6 +43,13 @@ class ResourceToken extends Model 'default' => '', 'example' => self::TYPE_DATETIME_EXAMPLE, ]) + ->addRule('secret', [ + 'type' => self::TYPE_STRING, + 'description' => 'JWT encoded string.', + 'default' => '', + // this is a secret but is converted to a JWT token when sent back to the client after filter. + 'example' => 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c', + ]) ->addRule('accessedAt', [ 'type' => self::TYPE_DATETIME, 'description' => 'Most recent access date in ISO 8601 format. This attribute is only updated again after ' . APP_RESOURCE_TOKEN_ACCESS / 60 / 60 . ' hours.', @@ -56,6 +59,32 @@ class ResourceToken extends Model ; } + public function filter(Document $document): Document + { + $maxAge = PHP_INT_MAX; + $expire = $document->getAttribute('expire'); + + if ($expire !== null) { + $now = new \DateTime(); + $expiryDate = new \DateTime($expire); + + // set 1 min if expired, we check for expiry later on route hooks for validation! + $maxAge = min(60, $expiryDate->getTimestamp() - $now->getTimestamp()); + } + + $jwt = new JWT(System::getEnv('_APP_OPENSSL_KEY_V1'), 'HS256', $maxAge, 10); + $secret = $jwt->encode([ + 'tokenId' => $document->getId(), + 'resourceId' => $document->getAttribute('resourceId'), + 'resourceType' => $document->getAttribute('resourceType'), + 'resourceInternalId' => $document->getAttribute('resourceInternalId'), + ]); + + $document->setAttribute('secret', $secret); + + return $document; + } + /** * Get Name * diff --git a/tests/e2e/Services/Tokens/TokensBase.php b/tests/e2e/Services/Tokens/TokensBase.php index c7ae1d0598..af93f5fc73 100644 --- a/tests/e2e/Services/Tokens/TokensBase.php +++ b/tests/e2e/Services/Tokens/TokensBase.php @@ -66,7 +66,7 @@ trait TokensBase return [ 'fileId' => $fileId, 'bucketId' => $bucketId, - 'tokenId' => $token['body']['$id'], + 'token' => $token['body'], 'guestHeaders' => [ 'content-type' => 'application/json', 'x-appwrite-project' => $this->getProject()['$id'], @@ -143,22 +143,12 @@ trait TokensBase */ public function testPreviewFileWithToken(array $data): array { + $token = $data['token']; $fileId = $data['fileId']; - $tokenId = $data['tokenId']; $bucketId = $data['bucketId']; $guestHeaders = $data['guestHeaders']; - $adminHeaders = array_merge($guestHeaders, ['x-appwrite-key' => $this->getProject()['apiKey']]); - // Generate JWT as an admin user. - $tokenJWT = $this->client->call( - Client::METHOD_GET, - '/tokens/' . $tokenId . '/jwt/', - $adminHeaders - ); - $this->assertEquals(200, $tokenJWT['headers']['status-code']); - $this->assertArrayHasKey('jwt', $tokenJWT['body']); - - $tokenJWT = $tokenJWT['body']['jwt']; + $tokenJWT = $token['secret']; // Generate a preview $filePreview = $this->client->call(