diff --git a/.coderabbit.yaml b/.coderabbit.yaml index 0b8534b7c9..39fac266fd 100644 --- a/.coderabbit.yaml +++ b/.coderabbit.yaml @@ -3,5 +3,4 @@ reviews: base_branches: - main - 1.6.x - - 1.7.x - - feat-sites # temporary until merged to 1.7.x \ No newline at end of file + - 1.7.x \ No newline at end of file diff --git a/app/config/specs/open-api3-1.7.x-client.json b/app/config/specs/open-api3-1.7.x-client.json index b50c4ebf4c..1be340b5ec 100644 --- a/app/config/specs/open-api3-1.7.x-client.json +++ b/app/config/specs/open-api3-1.7.x-client.json @@ -4748,7 +4748,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a list of all the current user function execution logs. You can use the query params to filter your results.", "responses": { "200": { "description": "Executions List", @@ -4763,7 +4763,7 @@ }, "x-appwrite": { "method": "listExecutions", - "weight": 383, + "weight": 384, "cookies": false, "type": "", "deprecated": false, @@ -4822,7 +4822,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.", "responses": { "201": { "description": "Execution", @@ -4837,7 +4837,7 @@ }, "x-appwrite": { "method": "createExecution", - "weight": 381, + "weight": 382, "cookies": false, "type": "", "deprecated": false, @@ -4936,7 +4936,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a function execution log by its unique ID.", "responses": { "200": { "description": "Execution", @@ -4951,7 +4951,7 @@ }, "x-appwrite": { "method": "getExecution", - "weight": 382, + "weight": 383, "cookies": false, "type": "", "deprecated": false, @@ -5534,7 +5534,7 @@ }, "x-appwrite": { "method": "createSubscriber", - "weight": 348, + "weight": 349, "cookies": false, "type": "", "deprecated": false, @@ -5616,7 +5616,7 @@ }, "x-appwrite": { "method": "deleteSubscriber", - "weight": 352, + "weight": 353, "cookies": false, "type": "", "deprecated": false, @@ -7448,6 +7448,451 @@ } } } + }, + "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "List tokens", + "operationId": "tokensList", + "tags": [ + "tokens" + ], + "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Resource Tokens List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/resourceTokenList" + } + } + } + } + }, + "x-appwrite": { + "method": "list", + "weight": 432, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "tokens\/list.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterList all the tokens created for a specific file or bucket. You can use the query params to filter your results.", + "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": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "queries", + "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. You may filter on the following attributes: expire", + "required": false, + "schema": { + "type": "string", + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create file token", + "operationId": "tokensCreateFileToken", + "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.", + "responses": { + "201": { + "description": "ResourceToken", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/resourceToken" + } + } + } + } + }, + "x-appwrite": { + "method": "createFileToken", + "weight": 429, + "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.", + "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": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "expire": { + "type": "string", + "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" + } + } + } + } + } + } + } + } + }, + "\/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", + "weight": 430, + "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", + "weight": 433, + "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", + "weight": 434, + "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", + "weight": 431, + "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": [ @@ -7698,6 +8143,30 @@ "files" ] }, + "resourceTokenList": { + "description": "Resource Tokens List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of tokens documents that matched your query.", + "x-example": 5, + "format": "int32" + }, + "tokens": { + "type": "array", + "description": "List of tokens.", + "items": { + "$ref": "#\/components\/schemas\/resourceToken" + }, + "x-example": "" + } + }, + "required": [ + "total", + "tokens" + ] + }, "teamList": { "description": "Teams List", "type": "object", @@ -8894,6 +9363,50 @@ "chunksUploaded" ] }, + "resourceToken": { + "description": "ResourceToken", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "x-example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "resourceId": { + "type": "string", + "description": "Resource ID.", + "x-example": "5e5ea5c168bb8:5e5ea5c168bb8" + }, + "resourceInternalId": { + "type": "string", + "description": "File ID.", + "x-example": "1:1" + }, + "resourceType": { + "type": "string", + "description": "Resource type.", + "x-example": "file" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "resourceId", + "resourceInternalId", + "resourceType", + "expire" + ] + }, "team": { "description": "Team", "type": "object", diff --git a/app/config/specs/open-api3-1.7.x-console.json b/app/config/specs/open-api3-1.7.x-console.json index 019047436a..6c999d047a 100644 --- a/app/config/specs/open-api3-1.7.x-console.json +++ b/app/config/specs/open-api3-1.7.x-console.json @@ -4346,7 +4346,7 @@ "tags": [ "console" ], - "description": "", + "description": "Check if a resource ID is available.", "responses": { "204": { "description": "No content" @@ -4354,7 +4354,7 @@ }, "x-appwrite": { "method": "getResource", - "weight": 423, + "weight": 424, "cookies": false, "type": "", "deprecated": false, @@ -9036,7 +9036,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a list of all the project's functions. You can use the query params to filter your results.", "responses": { "200": { "description": "Functions List", @@ -9051,7 +9051,7 @@ }, "x-appwrite": { "method": "list", - "weight": 367, + "weight": 368, "cookies": false, "type": "", "deprecated": false, @@ -9108,7 +9108,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a new function. You can pass a list of [permissions](https:\/\/appwrite.io\/docs\/permissions) to allow different project users or team with access to execute the function using the client API.", "responses": { "201": { "description": "Function", @@ -9123,7 +9123,7 @@ }, "x-appwrite": { "method": "create", - "weight": 364, + "weight": 365, "cookies": false, "type": "", "deprecated": false, @@ -9338,7 +9338,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a list of all runtimes that are currently active on your instance.", "responses": { "200": { "description": "Runtimes List", @@ -9353,7 +9353,7 @@ }, "x-appwrite": { "method": "listRuntimes", - "weight": 369, + "weight": 370, "cookies": false, "type": "", "deprecated": false, @@ -9386,7 +9386,7 @@ "tags": [ "functions" ], - "description": "", + "description": "List allowed function specifications for this instance.", "responses": { "200": { "description": "Specifications List", @@ -9401,7 +9401,7 @@ }, "x-appwrite": { "method": "listSpecifications", - "weight": 370, + "weight": 371, "cookies": false, "type": "", "deprecated": false, @@ -9435,7 +9435,7 @@ "tags": [ "functions" ], - "description": "", + "description": "List available function templates. You can use template details in [createFunction](\/docs\/references\/cloud\/server-nodejs\/functions#create) method.", "responses": { "200": { "description": "Function Templates List", @@ -9450,7 +9450,7 @@ }, "x-appwrite": { "method": "listTemplates", - "weight": 393, + "weight": 394, "cookies": false, "type": "", "deprecated": false, @@ -9534,7 +9534,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a function template using ID. You can use template details in [createFunction](\/docs\/references\/cloud\/server-nodejs\/functions#create) method.", "responses": { "200": { "description": "Template Function", @@ -9549,7 +9549,7 @@ }, "x-appwrite": { "method": "getTemplate", - "weight": 392, + "weight": 393, "cookies": false, "type": "", "deprecated": false, @@ -9593,7 +9593,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get usage metrics and statistics for all functions in the project. View statistics including total deployments, builds, logs, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", "responses": { "200": { "description": "UsageFunctions", @@ -9608,7 +9608,7 @@ }, "x-appwrite": { "method": "listUsage", - "weight": 386, + "weight": 387, "cookies": false, "type": "", "deprecated": false, @@ -9664,7 +9664,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a function by its unique ID.", "responses": { "200": { "description": "Function", @@ -9679,7 +9679,7 @@ }, "x-appwrite": { "method": "get", - "weight": 365, + "weight": 366, "cookies": false, "type": "", "deprecated": false, @@ -9722,7 +9722,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Update function by its unique ID.", "responses": { "200": { "description": "Function", @@ -9737,7 +9737,7 @@ }, "x-appwrite": { "method": "update", - "weight": 366, + "weight": 367, "cookies": false, "type": "", "deprecated": false, @@ -9956,7 +9956,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Delete a function by its unique ID.", "responses": { "204": { "description": "No content" @@ -9964,7 +9964,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 368, + "weight": 369, "cookies": false, "type": "", "deprecated": false, @@ -10009,7 +10009,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Update the function active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your function.", "responses": { "200": { "description": "Function", @@ -10024,7 +10024,7 @@ }, "x-appwrite": { "method": "updateFunctionDeployment", - "weight": 373, + "weight": 374, "cookies": false, "type": "", "deprecated": false, @@ -10088,7 +10088,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a list of all the function's code deployments. You can use the query params to filter your results.", "responses": { "200": { "description": "Deployments List", @@ -10103,7 +10103,7 @@ }, "x-appwrite": { "method": "listDeployments", - "weight": 374, + "weight": 375, "cookies": false, "type": "", "deprecated": false, @@ -10170,7 +10170,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a new function code deployment. Use this endpoint to upload a new version of your code function. To execute your newly uploaded code, you'll need to update the function's deployment to use your new deployment UID.\n\nThis endpoint accepts a tar.gz file compressed with your code. Make sure to include any dependencies your code has within the compressed file. You can learn more about code packaging in the [Appwrite Cloud Functions tutorial](https:\/\/appwrite.io\/docs\/functions).\n\nUse the \"command\" param to set the entrypoint used to execute your code.", "responses": { "202": { "description": "Deployment", @@ -10185,7 +10185,7 @@ }, "x-appwrite": { "method": "createDeployment", - "weight": 371, + "weight": 372, "cookies": false, "type": "upload", "deprecated": false, @@ -10265,7 +10265,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a new build for an existing function deployment. This endpoint allows you to rebuild a deployment with the updated function configuration, including its entrypoint and build commands if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", "responses": { "202": { "description": "Deployment", @@ -10280,7 +10280,7 @@ }, "x-appwrite": { "method": "createDuplicateDeployment", - "weight": 379, + "weight": 380, "cookies": false, "type": "", "deprecated": false, @@ -10349,7 +10349,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/server\/functions#listTemplates) to find the template details.", "responses": { "202": { "description": "Deployment", @@ -10364,7 +10364,7 @@ }, "x-appwrite": { "method": "createTemplateDeployment", - "weight": 376, + "weight": 377, "cookies": false, "type": "", "deprecated": false, @@ -10451,7 +10451,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a deployment when a function is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", "responses": { "202": { "description": "Deployment", @@ -10466,7 +10466,7 @@ }, "x-appwrite": { "method": "createVcsDeployment", - "weight": 377, + "weight": 378, "cookies": false, "type": "", "deprecated": false, @@ -10547,7 +10547,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a function deployment by its unique ID.", "responses": { "200": { "description": "Deployment", @@ -10562,7 +10562,7 @@ }, "x-appwrite": { "method": "getDeployment", - "weight": 372, + "weight": 373, "cookies": false, "type": "", "deprecated": false, @@ -10615,7 +10615,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Delete a code deployment by its unique ID.", "responses": { "204": { "description": "No content" @@ -10623,7 +10623,7 @@ }, "x-appwrite": { "method": "deleteDeployment", - "weight": 375, + "weight": 376, "cookies": false, "type": "", "deprecated": false, @@ -10678,7 +10678,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a function deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", "responses": { "200": { "description": "File" @@ -10686,7 +10686,7 @@ }, "x-appwrite": { "method": "getDeploymentDownload", - "weight": 378, + "weight": 379, "cookies": false, "type": "location", "deprecated": false, @@ -10760,7 +10760,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Cancel an ongoing function deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", "responses": { "200": { "description": "Deployment", @@ -10775,7 +10775,7 @@ }, "x-appwrite": { "method": "updateDeploymentStatus", - "weight": 380, + "weight": 381, "cookies": false, "type": "", "deprecated": false, @@ -10830,7 +10830,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a list of all the current user function execution logs. You can use the query params to filter your results.", "responses": { "200": { "description": "Executions List", @@ -10845,7 +10845,7 @@ }, "x-appwrite": { "method": "listExecutions", - "weight": 383, + "weight": 384, "cookies": false, "type": "", "deprecated": false, @@ -10904,7 +10904,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.", "responses": { "201": { "description": "Execution", @@ -10919,7 +10919,7 @@ }, "x-appwrite": { "method": "createExecution", - "weight": 381, + "weight": 382, "cookies": false, "type": "", "deprecated": false, @@ -11018,7 +11018,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a function execution log by its unique ID.", "responses": { "200": { "description": "Execution", @@ -11033,7 +11033,7 @@ }, "x-appwrite": { "method": "getExecution", - "weight": 382, + "weight": 383, "cookies": false, "type": "", "deprecated": false, @@ -11089,7 +11089,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Delete a function execution by its unique ID.", "responses": { "204": { "description": "No content" @@ -11097,7 +11097,7 @@ }, "x-appwrite": { "method": "deleteExecution", - "weight": 384, + "weight": 385, "cookies": false, "type": "", "deprecated": false, @@ -11152,7 +11152,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get usage metrics and statistics for a for a specific function. View statistics including total deployments, builds, executions, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", "responses": { "200": { "description": "UsageFunction", @@ -11167,7 +11167,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 385, + "weight": 386, "cookies": false, "type": "", "deprecated": false, @@ -11233,7 +11233,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a list of all variables of a specific function.", "responses": { "200": { "description": "Variables List", @@ -11248,7 +11248,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 389, + "weight": 390, "cookies": false, "type": "", "deprecated": false, @@ -11291,7 +11291,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.", "responses": { "201": { "description": "Variable", @@ -11306,7 +11306,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 387, + "weight": 388, "cookies": false, "type": "", "deprecated": false, @@ -11381,7 +11381,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a variable by its unique ID.", "responses": { "200": { "description": "Variable", @@ -11396,7 +11396,7 @@ }, "x-appwrite": { "method": "getVariable", - "weight": 388, + "weight": 389, "cookies": false, "type": "", "deprecated": false, @@ -11449,7 +11449,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Update variable by its unique ID.", "responses": { "200": { "description": "Variable", @@ -11464,7 +11464,7 @@ }, "x-appwrite": { "method": "updateVariable", - "weight": 390, + "weight": 391, "cookies": false, "type": "", "deprecated": false, @@ -11546,7 +11546,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Delete a variable by its unique ID.", "responses": { "204": { "description": "No content" @@ -11554,7 +11554,7 @@ }, "x-appwrite": { "method": "deleteVariable", - "weight": 391, + "weight": 392, "cookies": false, "type": "", "deprecated": false, @@ -13469,7 +13469,7 @@ }, "x-appwrite": { "method": "listMessages", - "weight": 356, + "weight": 357, "cookies": false, "type": "", "deprecated": false, @@ -13544,7 +13544,7 @@ }, "x-appwrite": { "method": "createEmail", - "weight": 353, + "weight": 354, "cookies": false, "type": "", "deprecated": false, @@ -13687,7 +13687,7 @@ }, "x-appwrite": { "method": "updateEmail", - "weight": 360, + "weight": 361, "cookies": false, "type": "", "deprecated": false, @@ -13832,7 +13832,7 @@ }, "x-appwrite": { "method": "createPush", - "weight": 355, + "weight": 356, "cookies": false, "type": "", "deprecated": false, @@ -14005,7 +14005,7 @@ }, "x-appwrite": { "method": "updatePush", - "weight": 362, + "weight": 363, "cookies": false, "type": "", "deprecated": false, @@ -14182,7 +14182,7 @@ }, "x-appwrite": { "method": "createSms", - "weight": 354, + "weight": 355, "cookies": false, "type": "", "deprecated": false, @@ -14290,7 +14290,7 @@ }, "x-appwrite": { "method": "updateSms", - "weight": 361, + "weight": 362, "cookies": false, "type": "", "deprecated": false, @@ -14401,7 +14401,7 @@ }, "x-appwrite": { "method": "getMessage", - "weight": 359, + "weight": 360, "cookies": false, "type": "", "deprecated": false, @@ -14453,7 +14453,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 363, + "weight": 364, "cookies": false, "type": "", "deprecated": false, @@ -14514,7 +14514,7 @@ }, "x-appwrite": { "method": "listMessageLogs", - "weight": 357, + "weight": 358, "cookies": false, "type": "", "deprecated": false, @@ -14588,7 +14588,7 @@ }, "x-appwrite": { "method": "listTargets", - "weight": 358, + "weight": 359, "cookies": false, "type": "", "deprecated": false, @@ -14662,7 +14662,7 @@ }, "x-appwrite": { "method": "listProviders", - "weight": 328, + "weight": 329, "cookies": false, "type": "", "deprecated": false, @@ -14737,7 +14737,7 @@ }, "x-appwrite": { "method": "createApnsProvider", - "weight": 327, + "weight": 328, "cookies": false, "type": "", "deprecated": false, @@ -14841,7 +14841,7 @@ }, "x-appwrite": { "method": "updateApnsProvider", - "weight": 340, + "weight": 341, "cookies": false, "type": "", "deprecated": false, @@ -14948,7 +14948,7 @@ }, "x-appwrite": { "method": "createFcmProvider", - "weight": 326, + "weight": 327, "cookies": false, "type": "", "deprecated": false, @@ -15032,7 +15032,7 @@ }, "x-appwrite": { "method": "updateFcmProvider", - "weight": 339, + "weight": 340, "cookies": false, "type": "", "deprecated": false, @@ -15119,7 +15119,7 @@ }, "x-appwrite": { "method": "createMailgunProvider", - "weight": 318, + "weight": 319, "cookies": false, "type": "", "deprecated": false, @@ -15233,7 +15233,7 @@ }, "x-appwrite": { "method": "updateMailgunProvider", - "weight": 331, + "weight": 332, "cookies": false, "type": "", "deprecated": false, @@ -15350,7 +15350,7 @@ }, "x-appwrite": { "method": "createMsg91Provider", - "weight": 321, + "weight": 322, "cookies": false, "type": "", "deprecated": false, @@ -15444,7 +15444,7 @@ }, "x-appwrite": { "method": "updateMsg91Provider", - "weight": 334, + "weight": 335, "cookies": false, "type": "", "deprecated": false, @@ -15541,7 +15541,7 @@ }, "x-appwrite": { "method": "createSendgridProvider", - "weight": 319, + "weight": 320, "cookies": false, "type": "", "deprecated": false, @@ -15645,7 +15645,7 @@ }, "x-appwrite": { "method": "updateSendgridProvider", - "weight": 332, + "weight": 333, "cookies": false, "type": "", "deprecated": false, @@ -15752,7 +15752,7 @@ }, "x-appwrite": { "method": "createSmtpProvider", - "weight": 320, + "weight": 321, "cookies": false, "type": "", "deprecated": false, @@ -15894,7 +15894,7 @@ }, "x-appwrite": { "method": "updateSmtpProvider", - "weight": 333, + "weight": 334, "cookies": false, "type": "", "deprecated": false, @@ -16038,7 +16038,7 @@ }, "x-appwrite": { "method": "createTelesignProvider", - "weight": 322, + "weight": 323, "cookies": false, "type": "", "deprecated": false, @@ -16132,7 +16132,7 @@ }, "x-appwrite": { "method": "updateTelesignProvider", - "weight": 335, + "weight": 336, "cookies": false, "type": "", "deprecated": false, @@ -16229,7 +16229,7 @@ }, "x-appwrite": { "method": "createTextmagicProvider", - "weight": 323, + "weight": 324, "cookies": false, "type": "", "deprecated": false, @@ -16323,7 +16323,7 @@ }, "x-appwrite": { "method": "updateTextmagicProvider", - "weight": 336, + "weight": 337, "cookies": false, "type": "", "deprecated": false, @@ -16420,7 +16420,7 @@ }, "x-appwrite": { "method": "createTwilioProvider", - "weight": 324, + "weight": 325, "cookies": false, "type": "", "deprecated": false, @@ -16514,7 +16514,7 @@ }, "x-appwrite": { "method": "updateTwilioProvider", - "weight": 337, + "weight": 338, "cookies": false, "type": "", "deprecated": false, @@ -16611,7 +16611,7 @@ }, "x-appwrite": { "method": "createVonageProvider", - "weight": 325, + "weight": 326, "cookies": false, "type": "", "deprecated": false, @@ -16705,7 +16705,7 @@ }, "x-appwrite": { "method": "updateVonageProvider", - "weight": 338, + "weight": 339, "cookies": false, "type": "", "deprecated": false, @@ -16802,7 +16802,7 @@ }, "x-appwrite": { "method": "getProvider", - "weight": 330, + "weight": 331, "cookies": false, "type": "", "deprecated": false, @@ -16854,7 +16854,7 @@ }, "x-appwrite": { "method": "deleteProvider", - "weight": 341, + "weight": 342, "cookies": false, "type": "", "deprecated": false, @@ -16915,7 +16915,7 @@ }, "x-appwrite": { "method": "listProviderLogs", - "weight": 329, + "weight": 330, "cookies": false, "type": "", "deprecated": false, @@ -16989,7 +16989,7 @@ }, "x-appwrite": { "method": "listSubscriberLogs", - "weight": 350, + "weight": 351, "cookies": false, "type": "", "deprecated": false, @@ -17063,7 +17063,7 @@ }, "x-appwrite": { "method": "listTopics", - "weight": 343, + "weight": 344, "cookies": false, "type": "", "deprecated": false, @@ -17136,7 +17136,7 @@ }, "x-appwrite": { "method": "createTopic", - "weight": 342, + "weight": 343, "cookies": false, "type": "", "deprecated": false, @@ -17218,7 +17218,7 @@ }, "x-appwrite": { "method": "getTopic", - "weight": 345, + "weight": 346, "cookies": false, "type": "", "deprecated": false, @@ -17277,7 +17277,7 @@ }, "x-appwrite": { "method": "updateTopic", - "weight": 346, + "weight": 347, "cookies": false, "type": "", "deprecated": false, @@ -17353,7 +17353,7 @@ }, "x-appwrite": { "method": "deleteTopic", - "weight": 347, + "weight": 348, "cookies": false, "type": "", "deprecated": false, @@ -17414,7 +17414,7 @@ }, "x-appwrite": { "method": "listTopicLogs", - "weight": 344, + "weight": 345, "cookies": false, "type": "", "deprecated": false, @@ -17488,7 +17488,7 @@ }, "x-appwrite": { "method": "listSubscribers", - "weight": 349, + "weight": 350, "cookies": false, "type": "", "deprecated": false, @@ -17571,7 +17571,7 @@ }, "x-appwrite": { "method": "createSubscriber", - "weight": 348, + "weight": 349, "cookies": false, "type": "", "deprecated": false, @@ -17660,7 +17660,7 @@ }, "x-appwrite": { "method": "getSubscriber", - "weight": 351, + "weight": 352, "cookies": false, "type": "", "deprecated": false, @@ -17722,7 +17722,7 @@ }, "x-appwrite": { "method": "deleteSubscriber", - "weight": 352, + "weight": 353, "cookies": false, "type": "", "deprecated": false, @@ -17796,7 +17796,7 @@ }, "x-appwrite": { "method": "list", - "weight": 310, + "weight": 311, "cookies": false, "type": "", "deprecated": false, @@ -17956,7 +17956,7 @@ }, "x-appwrite": { "method": "getAppwriteReport", - "weight": 312, + "weight": 313, "cookies": false, "type": "", "deprecated": false, @@ -18026,6 +18026,84 @@ ] } }, + "\/migrations\/csv": { + "post": { + "summary": "Import documents from a CSV", + "operationId": "migrationsCreateCsvMigration", + "tags": [ + "migrations" + ], + "description": "Import documents from a CSV file into your Appwrite database. This endpoint allows you to import documents from a CSV file uploaded to Appwrite Storage bucket.", + "responses": { + "202": { + "description": "Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migration" + } + } + } + } + }, + "x-appwrite": { + "method": "createCsvMigration", + "weight": 310, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "migrations\/create-csv-migration.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "bucketId": { + "type": "string", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "x-example": "" + }, + "fileId": { + "type": "string", + "description": "File ID.", + "x-example": "" + }, + "resourceId": { + "type": "string", + "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database.", + "x-example": "[ID1:ID2]" + } + }, + "required": [ + "bucketId", + "fileId", + "resourceId" + ] + } + } + } + } + } + }, "\/migrations\/firebase": { "post": { "summary": "Migrate Firebase data", @@ -18123,7 +18201,7 @@ }, "x-appwrite": { "method": "getFirebaseReport", - "weight": 313, + "weight": 314, "cookies": false, "type": "", "deprecated": false, @@ -18304,7 +18382,7 @@ }, "x-appwrite": { "method": "getNHostReport", - "weight": 315, + "weight": 316, "cookies": false, "type": "", "deprecated": false, @@ -18540,7 +18618,7 @@ }, "x-appwrite": { "method": "getSupabaseReport", - "weight": 314, + "weight": 315, "cookies": false, "type": "", "deprecated": false, @@ -18663,7 +18741,7 @@ }, "x-appwrite": { "method": "get", - "weight": 311, + "weight": 312, "cookies": false, "type": "", "deprecated": false, @@ -18720,7 +18798,7 @@ }, "x-appwrite": { "method": "retry", - "weight": 316, + "weight": 317, "cookies": false, "type": "", "deprecated": false, @@ -18770,7 +18848,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 317, + "weight": 318, "cookies": false, "type": "", "deprecated": false, @@ -24101,7 +24179,7 @@ "tags": [ "proxy" ], - "description": "", + "description": "Create a new proxy rule for serving Appwrite's API on custom domain.", "responses": { "201": { "description": "Rule", @@ -24116,7 +24194,7 @@ }, "x-appwrite": { "method": "createAPIRule", - "weight": 424, + "weight": 425, "cookies": false, "type": "", "deprecated": false, @@ -24167,7 +24245,7 @@ "tags": [ "proxy" ], - "description": "", + "description": "Create a new proxy rule for executing Appwrite Function on custom domain.", "responses": { "201": { "description": "Rule", @@ -24182,7 +24260,7 @@ }, "x-appwrite": { "method": "createFunctionRule", - "weight": 426, + "weight": 427, "cookies": false, "type": "", "deprecated": false, @@ -24244,7 +24322,7 @@ "tags": [ "proxy" ], - "description": "", + "description": "Create a new proxy rule for to redirect from custom domain to another domain.", "responses": { "201": { "description": "Rule", @@ -24259,7 +24337,7 @@ }, "x-appwrite": { "method": "createRedirectRule", - "weight": 427, + "weight": 428, "cookies": false, "type": "", "deprecated": false, @@ -24335,7 +24413,7 @@ "tags": [ "proxy" ], - "description": "", + "description": "Create a new proxy rule for serving Appwrite Site on custom domain.", "responses": { "201": { "description": "Rule", @@ -24350,7 +24428,7 @@ }, "x-appwrite": { "method": "createSiteRule", - "weight": 425, + "weight": 426, "cookies": false, "type": "", "deprecated": false, @@ -24580,7 +24658,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a list of all the project's sites. You can use the query params to filter your results.", "responses": { "200": { "description": "Sites List", @@ -24595,7 +24673,7 @@ }, "x-appwrite": { "method": "list", - "weight": 396, + "weight": 397, "cookies": false, "type": "", "deprecated": false, @@ -24649,7 +24727,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Create a new site.", "responses": { "201": { "description": "Site", @@ -24664,7 +24742,7 @@ }, "x-appwrite": { "method": "create", - "weight": 394, + "weight": 395, "cookies": false, "type": "", "deprecated": false, @@ -24894,7 +24972,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a list of all frameworks that are currently available on the server instance.", "responses": { "200": { "description": "Frameworks List", @@ -24909,7 +24987,7 @@ }, "x-appwrite": { "method": "listFrameworks", - "weight": 399, + "weight": 400, "cookies": false, "type": "", "deprecated": false, @@ -24942,7 +25020,7 @@ "tags": [ "sites" ], - "description": "", + "description": "List allowed site specifications for this instance.", "responses": { "200": { "description": "Specifications List", @@ -24957,7 +25035,7 @@ }, "x-appwrite": { "method": "listSpecifications", - "weight": 422, + "weight": 423, "cookies": false, "type": "", "deprecated": false, @@ -24991,7 +25069,7 @@ "tags": [ "sites" ], - "description": "", + "description": "List available site templates. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", "responses": { "200": { "description": "Site Templates List", @@ -25006,7 +25084,7 @@ }, "x-appwrite": { "method": "listTemplates", - "weight": 418, + "weight": 419, "cookies": false, "type": "", "deprecated": false, @@ -25090,7 +25168,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a site template using ID. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", "responses": { "200": { "description": "Template Site", @@ -25105,7 +25183,7 @@ }, "x-appwrite": { "method": "getTemplate", - "weight": 419, + "weight": 420, "cookies": false, "type": "", "deprecated": false, @@ -25149,7 +25227,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get usage metrics and statistics for all sites in the project. View statistics including total deployments, builds, logs, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", "responses": { "200": { "description": "UsageSites", @@ -25164,7 +25242,7 @@ }, "x-appwrite": { "method": "listUsage", - "weight": 420, + "weight": 421, "cookies": false, "type": "", "deprecated": false, @@ -25220,7 +25298,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a site by its unique ID.", "responses": { "200": { "description": "Site", @@ -25235,7 +25313,7 @@ }, "x-appwrite": { "method": "get", - "weight": 395, + "weight": 396, "cookies": false, "type": "", "deprecated": false, @@ -25278,7 +25356,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Update site by its unique ID.", "responses": { "200": { "description": "Site", @@ -25293,7 +25371,7 @@ }, "x-appwrite": { "method": "update", - "weight": 397, + "weight": 398, "cookies": false, "type": "", "deprecated": false, @@ -25526,7 +25604,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Delete a site by its unique ID.", "responses": { "204": { "description": "No content" @@ -25534,7 +25612,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 398, + "weight": 399, "cookies": false, "type": "", "deprecated": false, @@ -25579,7 +25657,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Update the site active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your site.", "responses": { "200": { "description": "Site", @@ -25594,7 +25672,7 @@ }, "x-appwrite": { "method": "updateSiteDeployment", - "weight": 405, + "weight": 406, "cookies": false, "type": "", "deprecated": false, @@ -25658,7 +25736,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a list of all the site's code deployments. You can use the query params to filter your results.", "responses": { "200": { "description": "Deployments List", @@ -25673,7 +25751,7 @@ }, "x-appwrite": { "method": "listDeployments", - "weight": 404, + "weight": 405, "cookies": false, "type": "", "deprecated": false, @@ -25740,7 +25818,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the function's deployment to use your new deployment ID.", "responses": { "202": { "description": "Deployment", @@ -25755,7 +25833,7 @@ }, "x-appwrite": { "method": "createDeployment", - "weight": 400, + "weight": 401, "cookies": false, "type": "upload", "deprecated": false, @@ -25840,7 +25918,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Create a new build for an existing site deployment. This endpoint allows you to rebuild a deployment with the updated site configuration, including its commands and output directory if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", "responses": { "202": { "description": "Deployment", @@ -25855,7 +25933,7 @@ }, "x-appwrite": { "method": "createDuplicateDeployment", - "weight": 408, + "weight": 409, "cookies": false, "type": "", "deprecated": false, @@ -25914,12 +25992,12 @@ }, "\/sites\/{siteId}\/deployments\/template": { "post": { - "summary": "Create deployment", + "summary": "Create template deployment", "operationId": "sitesCreateTemplateDeployment", "tags": [ "sites" ], - "description": "", + "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/server\/sites#listTemplates) to find the template details.", "responses": { "202": { "description": "Deployment", @@ -25934,7 +26012,7 @@ }, "x-appwrite": { "method": "createTemplateDeployment", - "weight": 401, + "weight": 402, "cookies": false, "type": "", "deprecated": false, @@ -26021,7 +26099,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Create a deployment when a site is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", "responses": { "202": { "description": "Deployment", @@ -26036,7 +26114,7 @@ }, "x-appwrite": { "method": "createVcsDeployment", - "weight": 402, + "weight": 403, "cookies": false, "type": "", "deprecated": false, @@ -26118,7 +26196,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a site deployment by its unique ID.", "responses": { "200": { "description": "Deployment", @@ -26133,7 +26211,7 @@ }, "x-appwrite": { "method": "getDeployment", - "weight": 403, + "weight": 404, "cookies": false, "type": "", "deprecated": false, @@ -26186,7 +26264,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Delete a site deployment by its unique ID.", "responses": { "204": { "description": "No content" @@ -26194,7 +26272,7 @@ }, "x-appwrite": { "method": "deleteDeployment", - "weight": 406, + "weight": 407, "cookies": false, "type": "", "deprecated": false, @@ -26249,7 +26327,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a site deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", "responses": { "200": { "description": "File" @@ -26257,7 +26335,7 @@ }, "x-appwrite": { "method": "getDeploymentDownload", - "weight": 407, + "weight": 408, "cookies": false, "type": "location", "deprecated": false, @@ -26331,7 +26409,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Cancel an ongoing site deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", "responses": { "200": { "description": "Deployment", @@ -26346,7 +26424,7 @@ }, "x-appwrite": { "method": "updateDeploymentStatus", - "weight": 409, + "weight": 410, "cookies": false, "type": "", "deprecated": false, @@ -26401,7 +26479,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a list of all site logs. You can use the query params to filter your results.", "responses": { "200": { "description": "Executions List", @@ -26416,7 +26494,7 @@ }, "x-appwrite": { "method": "listLogs", - "weight": 411, + "weight": 412, "cookies": false, "type": "", "deprecated": false, @@ -26471,7 +26549,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a site request log by its unique ID.", "responses": { "200": { "description": "Execution", @@ -26486,7 +26564,7 @@ }, "x-appwrite": { "method": "getLog", - "weight": 410, + "weight": 411, "cookies": false, "type": "", "deprecated": false, @@ -26539,7 +26617,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Delete a site log by its unique ID.", "responses": { "204": { "description": "No content" @@ -26547,7 +26625,7 @@ }, "x-appwrite": { "method": "deleteLog", - "weight": 412, + "weight": 413, "cookies": false, "type": "", "deprecated": false, @@ -26602,7 +26680,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get usage metrics and statistics for a for a specific site. View statistics including total deployments, builds, executions, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", "responses": { "200": { "description": "UsageSite", @@ -26617,7 +26695,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 421, + "weight": 422, "cookies": false, "type": "", "deprecated": false, @@ -26683,7 +26761,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a list of all variables of a specific site.", "responses": { "200": { "description": "Variables List", @@ -26698,7 +26776,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 415, + "weight": 416, "cookies": false, "type": "", "deprecated": false, @@ -26741,7 +26819,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.", "responses": { "201": { "description": "Variable", @@ -26756,7 +26834,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 413, + "weight": 414, "cookies": false, "type": "", "deprecated": false, @@ -26831,7 +26909,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a variable by its unique ID.", "responses": { "200": { "description": "Variable", @@ -26846,7 +26924,7 @@ }, "x-appwrite": { "method": "getVariable", - "weight": 414, + "weight": 415, "cookies": false, "type": "", "deprecated": false, @@ -26899,7 +26977,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Update variable by its unique ID.", "responses": { "200": { "description": "Variable", @@ -26914,7 +26992,7 @@ }, "x-appwrite": { "method": "updateVariable", - "weight": 416, + "weight": 417, "cookies": false, "type": "", "deprecated": false, @@ -26996,7 +27074,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Delete a variable by its unique ID.", "responses": { "204": { "description": "No content" @@ -27004,7 +27082,7 @@ }, "x-appwrite": { "method": "deleteVariable", - "weight": 417, + "weight": 418, "cookies": false, "type": "", "deprecated": false, @@ -29493,6 +29571,451 @@ } } }, + "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "List tokens", + "operationId": "tokensList", + "tags": [ + "tokens" + ], + "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Resource Tokens List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/resourceTokenList" + } + } + } + } + }, + "x-appwrite": { + "method": "list", + "weight": 432, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "tokens\/list.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterList all the tokens created for a specific file or bucket. You can use the query params to filter your results.", + "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": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "queries", + "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. You may filter on the following attributes: expire", + "required": false, + "schema": { + "type": "string", + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create file token", + "operationId": "tokensCreateFileToken", + "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.", + "responses": { + "201": { + "description": "ResourceToken", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/resourceToken" + } + } + } + } + }, + "x-appwrite": { + "method": "createFileToken", + "weight": 429, + "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.", + "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": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "expire": { + "type": "string", + "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" + } + } + } + } + } + } + } + } + }, + "\/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", + "weight": 430, + "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": [], + "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", + "weight": 433, + "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": [], + "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", + "weight": 434, + "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": [], + "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", + "weight": 431, + "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", @@ -33845,6 +34368,30 @@ "buckets" ] }, + "resourceTokenList": { + "description": "Resource Tokens List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of tokens documents that matched your query.", + "x-example": 5, + "format": "int32" + }, + "tokens": { + "type": "array", + "description": "List of tokens.", + "items": { + "$ref": "#\/components\/schemas\/resourceToken" + }, + "x-example": "" + } + }, + "required": [ + "total", + "tokens" + ] + }, "teamList": { "description": "Teams List", "type": "object", @@ -36724,6 +37271,50 @@ "antivirus" ] }, + "resourceToken": { + "description": "ResourceToken", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "x-example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "resourceId": { + "type": "string", + "description": "Resource ID.", + "x-example": "5e5ea5c168bb8:5e5ea5c168bb8" + }, + "resourceInternalId": { + "type": "string", + "description": "File ID.", + "x-example": "1:1" + }, + "resourceType": { + "type": "string", + "description": "Resource type.", + "x-example": "file" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "resourceId", + "resourceInternalId", + "resourceType", + "expire" + ] + }, "team": { "description": "Team", "type": "object", @@ -39911,6 +40502,18 @@ }, "x-example": [] }, + "buildsSuccessTotal": { + "type": "integer", + "description": "Total aggregated number of successful function builds.", + "x-example": 0, + "format": "int32" + }, + "buildsFailedTotal": { + "type": "integer", + "description": "Total aggregated number of failed function builds.", + "x-example": 0, + "format": "int32" + }, "builds": { "type": "array", "description": "Aggregated number of functions build per period.", @@ -39966,6 +40569,22 @@ "$ref": "#\/components\/schemas\/metric" }, "x-example": [] + }, + "buildsSuccess": { + "type": "array", + "description": "Aggregated number of successful function builds per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "buildsFailed": { + "type": "array", + "description": "Aggregated number of failed function builds per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] } }, "required": [ @@ -39983,13 +40602,17 @@ "functions", "deployments", "deploymentsStorage", + "buildsSuccessTotal", + "buildsFailedTotal", "builds", "buildsStorage", "buildsTime", "buildsMbSeconds", "executions", "executionsTime", - "executionsMbSeconds" + "executionsMbSeconds", + "buildsSuccess", + "buildsFailed" ] }, "usageFunction": { @@ -40019,6 +40642,18 @@ "x-example": 0, "format": "int32" }, + "buildsSuccessTotal": { + "type": "integer", + "description": "Total aggregated number of successful function builds.", + "x-example": 0, + "format": "int32" + }, + "buildsFailedTotal": { + "type": "integer", + "description": "Total aggregated number of failed function builds.", + "x-example": 0, + "format": "int32" + }, "buildsStorageTotal": { "type": "integer", "description": "total aggregated sum of function builds storage.", @@ -40031,6 +40666,12 @@ "x-example": 0, "format": "int32" }, + "buildsTimeAverage": { + "type": "integer", + "description": "Average builds compute time.", + "x-example": 0, + "format": "int32" + }, "buildsMbSecondsTotal": { "type": "integer", "description": "Total aggregated sum of function builds mbSeconds.", @@ -40126,6 +40767,269 @@ "$ref": "#\/components\/schemas\/metric" }, "x-example": [] + }, + "buildsSuccess": { + "type": "array", + "description": "Aggregated number of successful builds per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "buildsFailed": { + "type": "array", + "description": "Aggregated number of failed builds per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + } + }, + "required": [ + "range", + "deploymentsTotal", + "deploymentsStorageTotal", + "buildsTotal", + "buildsSuccessTotal", + "buildsFailedTotal", + "buildsStorageTotal", + "buildsTimeTotal", + "buildsTimeAverage", + "buildsMbSecondsTotal", + "executionsTotal", + "executionsTimeTotal", + "executionsMbSecondsTotal", + "deployments", + "deploymentsStorage", + "builds", + "buildsStorage", + "buildsTime", + "buildsMbSeconds", + "executions", + "executionsTime", + "executionsMbSeconds", + "buildsSuccess", + "buildsFailed" + ] + }, + "usageSites": { + "description": "UsageSites", + "type": "object", + "properties": { + "range": { + "type": "string", + "description": "Time range of the usage stats.", + "x-example": "30d" + }, + "deploymentsTotal": { + "type": "integer", + "description": "Total aggregated number of functions deployments.", + "x-example": 0, + "format": "int32" + }, + "deploymentsStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of functions deployment storage.", + "x-example": 0, + "format": "int32" + }, + "buildsTotal": { + "type": "integer", + "description": "Total aggregated number of functions build.", + "x-example": 0, + "format": "int32" + }, + "buildsStorageTotal": { + "type": "integer", + "description": "total aggregated sum of functions build storage.", + "x-example": 0, + "format": "int32" + }, + "buildsTimeTotal": { + "type": "integer", + "description": "Total aggregated sum of functions build compute time.", + "x-example": 0, + "format": "int32" + }, + "buildsMbSecondsTotal": { + "type": "integer", + "description": "Total aggregated sum of functions build mbSeconds.", + "x-example": 0, + "format": "int32" + }, + "executionsTotal": { + "type": "integer", + "description": "Total aggregated number of functions execution.", + "x-example": 0, + "format": "int32" + }, + "executionsTimeTotal": { + "type": "integer", + "description": "Total aggregated sum of functions execution compute time.", + "x-example": 0, + "format": "int32" + }, + "executionsMbSecondsTotal": { + "type": "integer", + "description": "Total aggregated sum of functions execution mbSeconds.", + "x-example": 0, + "format": "int32" + }, + "deployments": { + "type": "array", + "description": "Aggregated number of functions deployment per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "deploymentsStorage": { + "type": "array", + "description": "Aggregated number of functions deployment storage per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "buildsSuccessTotal": { + "type": "integer", + "description": "Total aggregated number of successful function builds.", + "x-example": 0, + "format": "int32" + }, + "buildsFailedTotal": { + "type": "integer", + "description": "Total aggregated number of failed function builds.", + "x-example": 0, + "format": "int32" + }, + "builds": { + "type": "array", + "description": "Aggregated number of functions build per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "buildsStorage": { + "type": "array", + "description": "Aggregated sum of functions build storage per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "buildsTime": { + "type": "array", + "description": "Aggregated sum of functions build compute time per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "buildsMbSeconds": { + "type": "array", + "description": "Aggregated sum of functions build mbSeconds per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "executions": { + "type": "array", + "description": "Aggregated number of functions execution per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "executionsTime": { + "type": "array", + "description": "Aggregated number of functions execution compute time per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "executionsMbSeconds": { + "type": "array", + "description": "Aggregated number of functions mbSeconds per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "buildsSuccess": { + "type": "array", + "description": "Aggregated number of successful function builds per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "buildsFailed": { + "type": "array", + "description": "Aggregated number of failed function builds per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "sitesTotal": { + "type": "integer", + "description": "Total aggregated number of sites.", + "x-example": 0, + "format": "int32" + }, + "sites": { + "type": "array", + "description": "Aggregated number of sites per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "requestsTotal": { + "type": "integer", + "description": "Total aggregated number of requests.", + "x-example": 0, + "format": "int32" + }, + "requests": { + "type": "array", + "description": "Aggregated number of requests per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "inboundTotal": { + "type": "integer", + "description": "Total aggregated inbound bandwidth.", + "x-example": 0, + "format": "int32" + }, + "inbound": { + "type": "array", + "description": "Aggregated number of inbound bandwidth per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "outboundTotal": { + "type": "integer", + "description": "Total aggregated outbound bandwidth.", + "x-example": 0, + "format": "int32" + }, + "outbound": { + "type": "array", + "description": "Aggregated number of outbound bandwidth per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] } }, "required": [ @@ -40141,139 +41045,25 @@ "executionsMbSecondsTotal", "deployments", "deploymentsStorage", + "buildsSuccessTotal", + "buildsFailedTotal", "builds", "buildsStorage", "buildsTime", "buildsMbSeconds", "executions", "executionsTime", - "executionsMbSeconds" - ] - }, - "usageSites": { - "description": "UsageSites", - "type": "object", - "properties": { - "range": { - "type": "string", - "description": "Time range of the usage stats.", - "x-example": "30d" - }, - "sitesTotal": { - "type": "integer", - "description": "Total aggregated number of sites.", - "x-example": 0, - "format": "int32" - }, - "deploymentsTotal": { - "type": "integer", - "description": "Total aggregated number of sites deployments.", - "x-example": 0, - "format": "int32" - }, - "deploymentsStorageTotal": { - "type": "integer", - "description": "Total aggregated sum of sites deployment storage.", - "x-example": 0, - "format": "int32" - }, - "buildsTotal": { - "type": "integer", - "description": "Total aggregated number of sites build.", - "x-example": 0, - "format": "int32" - }, - "buildsStorageTotal": { - "type": "integer", - "description": "total aggregated sum of sites build storage.", - "x-example": 0, - "format": "int32" - }, - "buildsTimeTotal": { - "type": "integer", - "description": "Total aggregated sum of sites build compute time.", - "x-example": 0, - "format": "int32" - }, - "buildsMbSecondsTotal": { - "type": "integer", - "description": "Total aggregated sum of sites build mbSeconds.", - "x-example": 0, - "format": "int32" - }, - "sites": { - "type": "array", - "description": "Aggregated number of sites per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": 0 - }, - "deployments": { - "type": "array", - "description": "Aggregated number of sites deployment per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "deploymentsStorage": { - "type": "array", - "description": "Aggregated number of sites deployment storage per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "builds": { - "type": "array", - "description": "Aggregated number of sites build per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "buildsStorage": { - "type": "array", - "description": "Aggregated sum of sites build storage per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "buildsTime": { - "type": "array", - "description": "Aggregated sum of sites build compute time per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "buildsMbSeconds": { - "type": "array", - "description": "Aggregated sum of sites build mbSeconds per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - } - }, - "required": [ - "range", + "executionsMbSeconds", + "buildsSuccess", + "buildsFailed", "sitesTotal", - "deploymentsTotal", - "deploymentsStorageTotal", - "buildsTotal", - "buildsStorageTotal", - "buildsTimeTotal", - "buildsMbSecondsTotal", "sites", - "deployments", - "deploymentsStorage", - "builds", - "buildsStorage", - "buildsTime", - "buildsMbSeconds" + "requestsTotal", + "requests", + "inboundTotal", + "inbound", + "outboundTotal", + "outbound" ] }, "usageSite": { @@ -40287,43 +41077,79 @@ }, "deploymentsTotal": { "type": "integer", - "description": "Total aggregated number of site deployments.", + "description": "Total aggregated number of function deployments.", "x-example": 0, "format": "int32" }, "deploymentsStorageTotal": { "type": "integer", - "description": "Total aggregated sum of site deployments storage.", + "description": "Total aggregated sum of function deployments storage.", "x-example": 0, "format": "int32" }, "buildsTotal": { "type": "integer", - "description": "Total aggregated number of site builds.", + "description": "Total aggregated number of function builds.", + "x-example": 0, + "format": "int32" + }, + "buildsSuccessTotal": { + "type": "integer", + "description": "Total aggregated number of successful function builds.", + "x-example": 0, + "format": "int32" + }, + "buildsFailedTotal": { + "type": "integer", + "description": "Total aggregated number of failed function builds.", "x-example": 0, "format": "int32" }, "buildsStorageTotal": { "type": "integer", - "description": "total aggregated sum of site builds storage.", + "description": "total aggregated sum of function builds storage.", "x-example": 0, "format": "int32" }, "buildsTimeTotal": { "type": "integer", - "description": "Total aggregated sum of site builds compute time.", + "description": "Total aggregated sum of function builds compute time.", + "x-example": 0, + "format": "int32" + }, + "buildsTimeAverage": { + "type": "integer", + "description": "Average builds compute time.", "x-example": 0, "format": "int32" }, "buildsMbSecondsTotal": { "type": "integer", - "description": "Total aggregated sum of site builds mbSeconds.", + "description": "Total aggregated sum of function builds mbSeconds.", + "x-example": 0, + "format": "int32" + }, + "executionsTotal": { + "type": "integer", + "description": "Total aggregated number of function executions.", + "x-example": 0, + "format": "int32" + }, + "executionsTimeTotal": { + "type": "integer", + "description": "Total aggregated sum of function executions compute time.", + "x-example": 0, + "format": "int32" + }, + "executionsMbSecondsTotal": { + "type": "integer", + "description": "Total aggregated sum of function executions mbSeconds.", "x-example": 0, "format": "int32" }, "deployments": { "type": "array", - "description": "Aggregated number of site deployments per period.", + "description": "Aggregated number of function deployments per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, @@ -40331,7 +41157,7 @@ }, "deploymentsStorage": { "type": "array", - "description": "Aggregated number of site deployments storage per period.", + "description": "Aggregated number of function deployments storage per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, @@ -40339,7 +41165,7 @@ }, "builds": { "type": "array", - "description": "Aggregated number of site builds per period.", + "description": "Aggregated number of function builds per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, @@ -40347,7 +41173,7 @@ }, "buildsStorage": { "type": "array", - "description": "Aggregated sum of site builds storage per period.", + "description": "Aggregated sum of function builds storage per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, @@ -40355,7 +41181,7 @@ }, "buildsTime": { "type": "array", - "description": "Aggregated sum of site builds compute time per period.", + "description": "Aggregated sum of function builds compute time per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, @@ -40363,7 +41189,89 @@ }, "buildsMbSeconds": { "type": "array", - "description": "Aggregated number of site builds mbSeconds per period.", + "description": "Aggregated number of function builds mbSeconds per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "executions": { + "type": "array", + "description": "Aggregated number of function executions per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "executionsTime": { + "type": "array", + "description": "Aggregated number of function executions compute time per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "executionsMbSeconds": { + "type": "array", + "description": "Aggregated number of function mbSeconds per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "buildsSuccess": { + "type": "array", + "description": "Aggregated number of successful builds per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "buildsFailed": { + "type": "array", + "description": "Aggregated number of failed builds per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "requestsTotal": { + "type": "integer", + "description": "Total aggregated number of requests.", + "x-example": 0, + "format": "int32" + }, + "requests": { + "type": "array", + "description": "Aggregated number of requests per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "inboundTotal": { + "type": "integer", + "description": "Total aggregated inbound bandwidth.", + "x-example": 0, + "format": "int32" + }, + "inbound": { + "type": "array", + "description": "Aggregated number of inbound bandwidth per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "outboundTotal": { + "type": "integer", + "description": "Total aggregated outbound bandwidth.", + "x-example": 0, + "format": "int32" + }, + "outbound": { + "type": "array", + "description": "Aggregated number of outbound bandwidth per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, @@ -40375,15 +41283,32 @@ "deploymentsTotal", "deploymentsStorageTotal", "buildsTotal", + "buildsSuccessTotal", + "buildsFailedTotal", "buildsStorageTotal", "buildsTimeTotal", + "buildsTimeAverage", "buildsMbSecondsTotal", + "executionsTotal", + "executionsTimeTotal", + "executionsMbSecondsTotal", "deployments", "deploymentsStorage", "builds", "buildsStorage", "buildsTime", - "buildsMbSeconds" + "buildsMbSeconds", + "executions", + "executionsTime", + "executionsMbSeconds", + "buildsSuccess", + "buildsFailed", + "requestsTotal", + "requests", + "inboundTotal", + "inbound", + "outboundTotal", + "outbound" ] }, "usageProject": { @@ -40872,11 +41797,21 @@ "description": "Console Variables", "type": "object", "properties": { - "_APP_DOMAIN_TARGET": { + "_APP_DOMAIN_TARGET_CNAME": { "type": "string", "description": "CNAME target for your Appwrite custom domains.", "x-example": "appwrite.io" }, + "_APP_DOMAIN_TARGET_A": { + "type": "string", + "description": "A target for your Appwrite custom domains.", + "x-example": "127.0.0.1" + }, + "_APP_DOMAIN_TARGET_AAAA": { + "type": "string", + "description": "AAAA target for your Appwrite custom domains.", + "x-example": "::1" + }, "_APP_STORAGE_LIMIT": { "type": "integer", "description": "Maximum file size allowed for file upload in bytes.", @@ -40931,7 +41866,9 @@ } }, "required": [ - "_APP_DOMAIN_TARGET", + "_APP_DOMAIN_TARGET_CNAME", + "_APP_DOMAIN_TARGET_A", + "_APP_DOMAIN_TARGET_AAAA", "_APP_STORAGE_LIMIT", "_APP_COMPUTE_SIZE_LIMIT", "_APP_USAGE_STATS", @@ -41471,6 +42408,11 @@ "user" ] }, + "resourceId": { + "type": "string", + "description": "Id of the resource to migrate.", + "x-example": "databaseId:collectionId" + }, "statusCounters": { "type": "object", "description": "A group of counters that represent the total progress of the migration.", @@ -41499,6 +42441,7 @@ "source", "destination", "resources", + "resourceId", "statusCounters", "resourceData", "errors" diff --git a/app/config/specs/open-api3-1.7.x-server.json b/app/config/specs/open-api3-1.7.x-server.json index 9903453e60..ca30c5260e 100644 --- a/app/config/specs/open-api3-1.7.x-server.json +++ b/app/config/specs/open-api3-1.7.x-server.json @@ -8121,7 +8121,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a list of all the project's functions. You can use the query params to filter your results.", "responses": { "200": { "description": "Functions List", @@ -8136,7 +8136,7 @@ }, "x-appwrite": { "method": "list", - "weight": 367, + "weight": 368, "cookies": false, "type": "", "deprecated": false, @@ -8194,7 +8194,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a new function. You can pass a list of [permissions](https:\/\/appwrite.io\/docs\/permissions) to allow different project users or team with access to execute the function using the client API.", "responses": { "201": { "description": "Function", @@ -8209,7 +8209,7 @@ }, "x-appwrite": { "method": "create", - "weight": 364, + "weight": 365, "cookies": false, "type": "", "deprecated": false, @@ -8425,7 +8425,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a list of all runtimes that are currently active on your instance.", "responses": { "200": { "description": "Runtimes List", @@ -8440,7 +8440,7 @@ }, "x-appwrite": { "method": "listRuntimes", - "weight": 369, + "weight": 370, "cookies": false, "type": "", "deprecated": false, @@ -8474,7 +8474,7 @@ "tags": [ "functions" ], - "description": "", + "description": "List allowed function specifications for this instance.", "responses": { "200": { "description": "Specifications List", @@ -8489,7 +8489,7 @@ }, "x-appwrite": { "method": "listSpecifications", - "weight": 370, + "weight": 371, "cookies": false, "type": "", "deprecated": false, @@ -8524,7 +8524,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a function by its unique ID.", "responses": { "200": { "description": "Function", @@ -8539,7 +8539,7 @@ }, "x-appwrite": { "method": "get", - "weight": 365, + "weight": 366, "cookies": false, "type": "", "deprecated": false, @@ -8583,7 +8583,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Update function by its unique ID.", "responses": { "200": { "description": "Function", @@ -8598,7 +8598,7 @@ }, "x-appwrite": { "method": "update", - "weight": 366, + "weight": 367, "cookies": false, "type": "", "deprecated": false, @@ -8818,7 +8818,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Delete a function by its unique ID.", "responses": { "204": { "description": "No content" @@ -8826,7 +8826,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 368, + "weight": 369, "cookies": false, "type": "", "deprecated": false, @@ -8872,7 +8872,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Update the function active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your function.", "responses": { "200": { "description": "Function", @@ -8887,7 +8887,7 @@ }, "x-appwrite": { "method": "updateFunctionDeployment", - "weight": 373, + "weight": 374, "cookies": false, "type": "", "deprecated": false, @@ -8952,7 +8952,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a list of all the function's code deployments. You can use the query params to filter your results.", "responses": { "200": { "description": "Deployments List", @@ -8967,7 +8967,7 @@ }, "x-appwrite": { "method": "listDeployments", - "weight": 374, + "weight": 375, "cookies": false, "type": "", "deprecated": false, @@ -9035,7 +9035,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a new function code deployment. Use this endpoint to upload a new version of your code function. To execute your newly uploaded code, you'll need to update the function's deployment to use your new deployment UID.\n\nThis endpoint accepts a tar.gz file compressed with your code. Make sure to include any dependencies your code has within the compressed file. You can learn more about code packaging in the [Appwrite Cloud Functions tutorial](https:\/\/appwrite.io\/docs\/functions).\n\nUse the \"command\" param to set the entrypoint used to execute your code.", "responses": { "202": { "description": "Deployment", @@ -9050,7 +9050,7 @@ }, "x-appwrite": { "method": "createDeployment", - "weight": 371, + "weight": 372, "cookies": false, "type": "upload", "deprecated": false, @@ -9131,7 +9131,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a new build for an existing function deployment. This endpoint allows you to rebuild a deployment with the updated function configuration, including its entrypoint and build commands if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", "responses": { "202": { "description": "Deployment", @@ -9146,7 +9146,7 @@ }, "x-appwrite": { "method": "createDuplicateDeployment", - "weight": 379, + "weight": 380, "cookies": false, "type": "", "deprecated": false, @@ -9216,7 +9216,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/server\/functions#listTemplates) to find the template details.", "responses": { "202": { "description": "Deployment", @@ -9231,7 +9231,7 @@ }, "x-appwrite": { "method": "createTemplateDeployment", - "weight": 376, + "weight": 377, "cookies": false, "type": "", "deprecated": false, @@ -9319,7 +9319,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a deployment when a function is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", "responses": { "202": { "description": "Deployment", @@ -9334,7 +9334,7 @@ }, "x-appwrite": { "method": "createVcsDeployment", - "weight": 377, + "weight": 378, "cookies": false, "type": "", "deprecated": false, @@ -9416,7 +9416,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a function deployment by its unique ID.", "responses": { "200": { "description": "Deployment", @@ -9431,7 +9431,7 @@ }, "x-appwrite": { "method": "getDeployment", - "weight": 372, + "weight": 373, "cookies": false, "type": "", "deprecated": false, @@ -9485,7 +9485,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Delete a code deployment by its unique ID.", "responses": { "204": { "description": "No content" @@ -9493,7 +9493,7 @@ }, "x-appwrite": { "method": "deleteDeployment", - "weight": 375, + "weight": 376, "cookies": false, "type": "", "deprecated": false, @@ -9549,7 +9549,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a function deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", "responses": { "200": { "description": "File" @@ -9557,7 +9557,7 @@ }, "x-appwrite": { "method": "getDeploymentDownload", - "weight": 378, + "weight": 379, "cookies": false, "type": "location", "deprecated": false, @@ -9632,7 +9632,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Cancel an ongoing function deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", "responses": { "200": { "description": "Deployment", @@ -9647,7 +9647,7 @@ }, "x-appwrite": { "method": "updateDeploymentStatus", - "weight": 380, + "weight": 381, "cookies": false, "type": "", "deprecated": false, @@ -9703,7 +9703,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a list of all the current user function execution logs. You can use the query params to filter your results.", "responses": { "200": { "description": "Executions List", @@ -9718,7 +9718,7 @@ }, "x-appwrite": { "method": "listExecutions", - "weight": 383, + "weight": 384, "cookies": false, "type": "", "deprecated": false, @@ -9779,7 +9779,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.", "responses": { "201": { "description": "Execution", @@ -9794,7 +9794,7 @@ }, "x-appwrite": { "method": "createExecution", - "weight": 381, + "weight": 382, "cookies": false, "type": "", "deprecated": false, @@ -9895,7 +9895,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a function execution log by its unique ID.", "responses": { "200": { "description": "Execution", @@ -9910,7 +9910,7 @@ }, "x-appwrite": { "method": "getExecution", - "weight": 382, + "weight": 383, "cookies": false, "type": "", "deprecated": false, @@ -9968,7 +9968,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Delete a function execution by its unique ID.", "responses": { "204": { "description": "No content" @@ -9976,7 +9976,7 @@ }, "x-appwrite": { "method": "deleteExecution", - "weight": 384, + "weight": 385, "cookies": false, "type": "", "deprecated": false, @@ -10032,7 +10032,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a list of all variables of a specific function.", "responses": { "200": { "description": "Variables List", @@ -10047,7 +10047,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 389, + "weight": 390, "cookies": false, "type": "", "deprecated": false, @@ -10091,7 +10091,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.", "responses": { "201": { "description": "Variable", @@ -10106,7 +10106,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 387, + "weight": 388, "cookies": false, "type": "", "deprecated": false, @@ -10182,7 +10182,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a variable by its unique ID.", "responses": { "200": { "description": "Variable", @@ -10197,7 +10197,7 @@ }, "x-appwrite": { "method": "getVariable", - "weight": 388, + "weight": 389, "cookies": false, "type": "", "deprecated": false, @@ -10251,7 +10251,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Update variable by its unique ID.", "responses": { "200": { "description": "Variable", @@ -10266,7 +10266,7 @@ }, "x-appwrite": { "method": "updateVariable", - "weight": 390, + "weight": 391, "cookies": false, "type": "", "deprecated": false, @@ -10349,7 +10349,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Delete a variable by its unique ID.", "responses": { "204": { "description": "No content" @@ -10357,7 +10357,7 @@ }, "x-appwrite": { "method": "deleteVariable", - "weight": 391, + "weight": 392, "cookies": false, "type": "", "deprecated": false, @@ -12316,7 +12316,7 @@ }, "x-appwrite": { "method": "listMessages", - "weight": 356, + "weight": 357, "cookies": false, "type": "", "deprecated": false, @@ -12392,7 +12392,7 @@ }, "x-appwrite": { "method": "createEmail", - "weight": 353, + "weight": 354, "cookies": false, "type": "", "deprecated": false, @@ -12536,7 +12536,7 @@ }, "x-appwrite": { "method": "updateEmail", - "weight": 360, + "weight": 361, "cookies": false, "type": "", "deprecated": false, @@ -12682,7 +12682,7 @@ }, "x-appwrite": { "method": "createPush", - "weight": 355, + "weight": 356, "cookies": false, "type": "", "deprecated": false, @@ -12856,7 +12856,7 @@ }, "x-appwrite": { "method": "updatePush", - "weight": 362, + "weight": 363, "cookies": false, "type": "", "deprecated": false, @@ -13034,7 +13034,7 @@ }, "x-appwrite": { "method": "createSms", - "weight": 354, + "weight": 355, "cookies": false, "type": "", "deprecated": false, @@ -13143,7 +13143,7 @@ }, "x-appwrite": { "method": "updateSms", - "weight": 361, + "weight": 362, "cookies": false, "type": "", "deprecated": false, @@ -13255,7 +13255,7 @@ }, "x-appwrite": { "method": "getMessage", - "weight": 359, + "weight": 360, "cookies": false, "type": "", "deprecated": false, @@ -13308,7 +13308,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 363, + "weight": 364, "cookies": false, "type": "", "deprecated": false, @@ -13370,7 +13370,7 @@ }, "x-appwrite": { "method": "listMessageLogs", - "weight": 357, + "weight": 358, "cookies": false, "type": "", "deprecated": false, @@ -13445,7 +13445,7 @@ }, "x-appwrite": { "method": "listTargets", - "weight": 358, + "weight": 359, "cookies": false, "type": "", "deprecated": false, @@ -13520,7 +13520,7 @@ }, "x-appwrite": { "method": "listProviders", - "weight": 328, + "weight": 329, "cookies": false, "type": "", "deprecated": false, @@ -13596,7 +13596,7 @@ }, "x-appwrite": { "method": "createApnsProvider", - "weight": 327, + "weight": 328, "cookies": false, "type": "", "deprecated": false, @@ -13701,7 +13701,7 @@ }, "x-appwrite": { "method": "updateApnsProvider", - "weight": 340, + "weight": 341, "cookies": false, "type": "", "deprecated": false, @@ -13809,7 +13809,7 @@ }, "x-appwrite": { "method": "createFcmProvider", - "weight": 326, + "weight": 327, "cookies": false, "type": "", "deprecated": false, @@ -13894,7 +13894,7 @@ }, "x-appwrite": { "method": "updateFcmProvider", - "weight": 339, + "weight": 340, "cookies": false, "type": "", "deprecated": false, @@ -13982,7 +13982,7 @@ }, "x-appwrite": { "method": "createMailgunProvider", - "weight": 318, + "weight": 319, "cookies": false, "type": "", "deprecated": false, @@ -14097,7 +14097,7 @@ }, "x-appwrite": { "method": "updateMailgunProvider", - "weight": 331, + "weight": 332, "cookies": false, "type": "", "deprecated": false, @@ -14215,7 +14215,7 @@ }, "x-appwrite": { "method": "createMsg91Provider", - "weight": 321, + "weight": 322, "cookies": false, "type": "", "deprecated": false, @@ -14310,7 +14310,7 @@ }, "x-appwrite": { "method": "updateMsg91Provider", - "weight": 334, + "weight": 335, "cookies": false, "type": "", "deprecated": false, @@ -14408,7 +14408,7 @@ }, "x-appwrite": { "method": "createSendgridProvider", - "weight": 319, + "weight": 320, "cookies": false, "type": "", "deprecated": false, @@ -14513,7 +14513,7 @@ }, "x-appwrite": { "method": "updateSendgridProvider", - "weight": 332, + "weight": 333, "cookies": false, "type": "", "deprecated": false, @@ -14621,7 +14621,7 @@ }, "x-appwrite": { "method": "createSmtpProvider", - "weight": 320, + "weight": 321, "cookies": false, "type": "", "deprecated": false, @@ -14764,7 +14764,7 @@ }, "x-appwrite": { "method": "updateSmtpProvider", - "weight": 333, + "weight": 334, "cookies": false, "type": "", "deprecated": false, @@ -14909,7 +14909,7 @@ }, "x-appwrite": { "method": "createTelesignProvider", - "weight": 322, + "weight": 323, "cookies": false, "type": "", "deprecated": false, @@ -15004,7 +15004,7 @@ }, "x-appwrite": { "method": "updateTelesignProvider", - "weight": 335, + "weight": 336, "cookies": false, "type": "", "deprecated": false, @@ -15102,7 +15102,7 @@ }, "x-appwrite": { "method": "createTextmagicProvider", - "weight": 323, + "weight": 324, "cookies": false, "type": "", "deprecated": false, @@ -15197,7 +15197,7 @@ }, "x-appwrite": { "method": "updateTextmagicProvider", - "weight": 336, + "weight": 337, "cookies": false, "type": "", "deprecated": false, @@ -15295,7 +15295,7 @@ }, "x-appwrite": { "method": "createTwilioProvider", - "weight": 324, + "weight": 325, "cookies": false, "type": "", "deprecated": false, @@ -15390,7 +15390,7 @@ }, "x-appwrite": { "method": "updateTwilioProvider", - "weight": 337, + "weight": 338, "cookies": false, "type": "", "deprecated": false, @@ -15488,7 +15488,7 @@ }, "x-appwrite": { "method": "createVonageProvider", - "weight": 325, + "weight": 326, "cookies": false, "type": "", "deprecated": false, @@ -15583,7 +15583,7 @@ }, "x-appwrite": { "method": "updateVonageProvider", - "weight": 338, + "weight": 339, "cookies": false, "type": "", "deprecated": false, @@ -15681,7 +15681,7 @@ }, "x-appwrite": { "method": "getProvider", - "weight": 330, + "weight": 331, "cookies": false, "type": "", "deprecated": false, @@ -15734,7 +15734,7 @@ }, "x-appwrite": { "method": "deleteProvider", - "weight": 341, + "weight": 342, "cookies": false, "type": "", "deprecated": false, @@ -15796,7 +15796,7 @@ }, "x-appwrite": { "method": "listProviderLogs", - "weight": 329, + "weight": 330, "cookies": false, "type": "", "deprecated": false, @@ -15871,7 +15871,7 @@ }, "x-appwrite": { "method": "listSubscriberLogs", - "weight": 350, + "weight": 351, "cookies": false, "type": "", "deprecated": false, @@ -15946,7 +15946,7 @@ }, "x-appwrite": { "method": "listTopics", - "weight": 343, + "weight": 344, "cookies": false, "type": "", "deprecated": false, @@ -16020,7 +16020,7 @@ }, "x-appwrite": { "method": "createTopic", - "weight": 342, + "weight": 343, "cookies": false, "type": "", "deprecated": false, @@ -16103,7 +16103,7 @@ }, "x-appwrite": { "method": "getTopic", - "weight": 345, + "weight": 346, "cookies": false, "type": "", "deprecated": false, @@ -16163,7 +16163,7 @@ }, "x-appwrite": { "method": "updateTopic", - "weight": 346, + "weight": 347, "cookies": false, "type": "", "deprecated": false, @@ -16240,7 +16240,7 @@ }, "x-appwrite": { "method": "deleteTopic", - "weight": 347, + "weight": 348, "cookies": false, "type": "", "deprecated": false, @@ -16302,7 +16302,7 @@ }, "x-appwrite": { "method": "listTopicLogs", - "weight": 344, + "weight": 345, "cookies": false, "type": "", "deprecated": false, @@ -16377,7 +16377,7 @@ }, "x-appwrite": { "method": "listSubscribers", - "weight": 349, + "weight": 350, "cookies": false, "type": "", "deprecated": false, @@ -16461,7 +16461,7 @@ }, "x-appwrite": { "method": "createSubscriber", - "weight": 348, + "weight": 349, "cookies": false, "type": "", "deprecated": false, @@ -16552,7 +16552,7 @@ }, "x-appwrite": { "method": "getSubscriber", - "weight": 351, + "weight": 352, "cookies": false, "type": "", "deprecated": false, @@ -16615,7 +16615,7 @@ }, "x-appwrite": { "method": "deleteSubscriber", - "weight": 352, + "weight": 353, "cookies": false, "type": "", "deprecated": false, @@ -16676,7 +16676,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a list of all the project's sites. You can use the query params to filter your results.", "responses": { "200": { "description": "Sites List", @@ -16691,7 +16691,7 @@ }, "x-appwrite": { "method": "list", - "weight": 396, + "weight": 397, "cookies": false, "type": "", "deprecated": false, @@ -16746,7 +16746,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Create a new site.", "responses": { "201": { "description": "Site", @@ -16761,7 +16761,7 @@ }, "x-appwrite": { "method": "create", - "weight": 394, + "weight": 395, "cookies": false, "type": "", "deprecated": false, @@ -16992,7 +16992,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a list of all frameworks that are currently available on the server instance.", "responses": { "200": { "description": "Frameworks List", @@ -17007,7 +17007,7 @@ }, "x-appwrite": { "method": "listFrameworks", - "weight": 399, + "weight": 400, "cookies": false, "type": "", "deprecated": false, @@ -17041,7 +17041,7 @@ "tags": [ "sites" ], - "description": "", + "description": "List allowed site specifications for this instance.", "responses": { "200": { "description": "Specifications List", @@ -17056,7 +17056,7 @@ }, "x-appwrite": { "method": "listSpecifications", - "weight": 422, + "weight": 423, "cookies": false, "type": "", "deprecated": false, @@ -17091,7 +17091,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a site by its unique ID.", "responses": { "200": { "description": "Site", @@ -17106,7 +17106,7 @@ }, "x-appwrite": { "method": "get", - "weight": 395, + "weight": 396, "cookies": false, "type": "", "deprecated": false, @@ -17150,7 +17150,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Update site by its unique ID.", "responses": { "200": { "description": "Site", @@ -17165,7 +17165,7 @@ }, "x-appwrite": { "method": "update", - "weight": 397, + "weight": 398, "cookies": false, "type": "", "deprecated": false, @@ -17399,7 +17399,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Delete a site by its unique ID.", "responses": { "204": { "description": "No content" @@ -17407,7 +17407,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 398, + "weight": 399, "cookies": false, "type": "", "deprecated": false, @@ -17453,7 +17453,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Update the site active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your site.", "responses": { "200": { "description": "Site", @@ -17468,7 +17468,7 @@ }, "x-appwrite": { "method": "updateSiteDeployment", - "weight": 405, + "weight": 406, "cookies": false, "type": "", "deprecated": false, @@ -17533,7 +17533,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a list of all the site's code deployments. You can use the query params to filter your results.", "responses": { "200": { "description": "Deployments List", @@ -17548,7 +17548,7 @@ }, "x-appwrite": { "method": "listDeployments", - "weight": 404, + "weight": 405, "cookies": false, "type": "", "deprecated": false, @@ -17616,7 +17616,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the function's deployment to use your new deployment ID.", "responses": { "202": { "description": "Deployment", @@ -17631,7 +17631,7 @@ }, "x-appwrite": { "method": "createDeployment", - "weight": 400, + "weight": 401, "cookies": false, "type": "upload", "deprecated": false, @@ -17717,7 +17717,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Create a new build for an existing site deployment. This endpoint allows you to rebuild a deployment with the updated site configuration, including its commands and output directory if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", "responses": { "202": { "description": "Deployment", @@ -17732,7 +17732,7 @@ }, "x-appwrite": { "method": "createDuplicateDeployment", - "weight": 408, + "weight": 409, "cookies": false, "type": "", "deprecated": false, @@ -17792,12 +17792,12 @@ }, "\/sites\/{siteId}\/deployments\/template": { "post": { - "summary": "Create deployment", + "summary": "Create template deployment", "operationId": "sitesCreateTemplateDeployment", "tags": [ "sites" ], - "description": "", + "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/server\/sites#listTemplates) to find the template details.", "responses": { "202": { "description": "Deployment", @@ -17812,7 +17812,7 @@ }, "x-appwrite": { "method": "createTemplateDeployment", - "weight": 401, + "weight": 402, "cookies": false, "type": "", "deprecated": false, @@ -17900,7 +17900,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Create a deployment when a site is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", "responses": { "202": { "description": "Deployment", @@ -17915,7 +17915,7 @@ }, "x-appwrite": { "method": "createVcsDeployment", - "weight": 402, + "weight": 403, "cookies": false, "type": "", "deprecated": false, @@ -17998,7 +17998,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a site deployment by its unique ID.", "responses": { "200": { "description": "Deployment", @@ -18013,7 +18013,7 @@ }, "x-appwrite": { "method": "getDeployment", - "weight": 403, + "weight": 404, "cookies": false, "type": "", "deprecated": false, @@ -18067,7 +18067,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Delete a site deployment by its unique ID.", "responses": { "204": { "description": "No content" @@ -18075,7 +18075,7 @@ }, "x-appwrite": { "method": "deleteDeployment", - "weight": 406, + "weight": 407, "cookies": false, "type": "", "deprecated": false, @@ -18131,7 +18131,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a site deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", "responses": { "200": { "description": "File" @@ -18139,7 +18139,7 @@ }, "x-appwrite": { "method": "getDeploymentDownload", - "weight": 407, + "weight": 408, "cookies": false, "type": "location", "deprecated": false, @@ -18214,7 +18214,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Cancel an ongoing site deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", "responses": { "200": { "description": "Deployment", @@ -18229,7 +18229,7 @@ }, "x-appwrite": { "method": "updateDeploymentStatus", - "weight": 409, + "weight": 410, "cookies": false, "type": "", "deprecated": false, @@ -18285,7 +18285,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a list of all site logs. You can use the query params to filter your results.", "responses": { "200": { "description": "Executions List", @@ -18300,7 +18300,7 @@ }, "x-appwrite": { "method": "listLogs", - "weight": 411, + "weight": 412, "cookies": false, "type": "", "deprecated": false, @@ -18356,7 +18356,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a site request log by its unique ID.", "responses": { "200": { "description": "Execution", @@ -18371,7 +18371,7 @@ }, "x-appwrite": { "method": "getLog", - "weight": 410, + "weight": 411, "cookies": false, "type": "", "deprecated": false, @@ -18425,7 +18425,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Delete a site log by its unique ID.", "responses": { "204": { "description": "No content" @@ -18433,7 +18433,7 @@ }, "x-appwrite": { "method": "deleteLog", - "weight": 412, + "weight": 413, "cookies": false, "type": "", "deprecated": false, @@ -18489,7 +18489,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a list of all variables of a specific site.", "responses": { "200": { "description": "Variables List", @@ -18504,7 +18504,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 415, + "weight": 416, "cookies": false, "type": "", "deprecated": false, @@ -18548,7 +18548,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.", "responses": { "201": { "description": "Variable", @@ -18563,7 +18563,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 413, + "weight": 414, "cookies": false, "type": "", "deprecated": false, @@ -18639,7 +18639,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a variable by its unique ID.", "responses": { "200": { "description": "Variable", @@ -18654,7 +18654,7 @@ }, "x-appwrite": { "method": "getVariable", - "weight": 414, + "weight": 415, "cookies": false, "type": "", "deprecated": false, @@ -18708,7 +18708,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Update variable by its unique ID.", "responses": { "200": { "description": "Variable", @@ -18723,7 +18723,7 @@ }, "x-appwrite": { "method": "updateVariable", - "weight": 416, + "weight": 417, "cookies": false, "type": "", "deprecated": false, @@ -18806,7 +18806,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Delete a variable by its unique ID.", "responses": { "204": { "description": "No content" @@ -18814,7 +18814,7 @@ }, "x-appwrite": { "method": "deleteVariable", - "weight": 417, + "weight": 418, "cookies": false, "type": "", "deprecated": false, @@ -21127,6 +21127,463 @@ } } }, + "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "List tokens", + "operationId": "tokensList", + "tags": [ + "tokens" + ], + "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Resource Tokens List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/resourceTokenList" + } + } + } + } + }, + "x-appwrite": { + "method": "list", + "weight": 432, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "tokens\/list.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterList all the tokens created for a specific file or bucket. You can use the query params to filter your results.", + "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": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "queries", + "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. You may filter on the following attributes: expire", + "required": false, + "schema": { + "type": "string", + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create file token", + "operationId": "tokensCreateFileToken", + "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.", + "responses": { + "201": { + "description": "ResourceToken", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/resourceToken" + } + } + } + } + }, + "x-appwrite": { + "method": "createFileToken", + "weight": 429, + "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.", + "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": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "expire": { + "type": "string", + "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" + } + } + } + } + } + } + } + } + }, + "\/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", + "weight": 430, + "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", + "weight": 433, + "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", + "weight": 434, + "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", + "weight": 431, + "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", @@ -24706,6 +25163,30 @@ "buckets" ] }, + "resourceTokenList": { + "description": "Resource Tokens List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of tokens documents that matched your query.", + "x-example": 5, + "format": "int32" + }, + "tokens": { + "type": "array", + "description": "List of tokens.", + "items": { + "$ref": "#\/components\/schemas\/resourceToken" + }, + "x-example": "" + } + }, + "required": [ + "total", + "tokens" + ] + }, "teamList": { "description": "Teams List", "type": "object", @@ -27273,6 +27754,50 @@ "antivirus" ] }, + "resourceToken": { + "description": "ResourceToken", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "x-example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "resourceId": { + "type": "string", + "description": "Resource ID.", + "x-example": "5e5ea5c168bb8:5e5ea5c168bb8" + }, + "resourceInternalId": { + "type": "string", + "description": "File ID.", + "x-example": "1:1" + }, + "resourceType": { + "type": "string", + "description": "Resource type.", + "x-example": "file" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "resourceId", + "resourceInternalId", + "resourceType", + "expire" + ] + }, "team": { "description": "Team", "type": "object", diff --git a/app/config/specs/open-api3-latest-client.json b/app/config/specs/open-api3-latest-client.json index aa43ab23df..1be340b5ec 100644 --- a/app/config/specs/open-api3-latest-client.json +++ b/app/config/specs/open-api3-latest-client.json @@ -7456,7 +7456,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", "responses": { "200": { "description": "Resource Tokens List", @@ -7471,7 +7471,7 @@ }, "x-appwrite": { "method": "list", - "weight": 396, + "weight": 432, "cookies": false, "type": "", "deprecated": false, @@ -7537,7 +7537,7 @@ "tags": [ "tokens" ], - "description": "", + "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.", "responses": { "201": { "description": "ResourceToken", @@ -7552,7 +7552,7 @@ }, "x-appwrite": { "method": "createFileToken", - "weight": 393, + "weight": 429, "cookies": false, "type": "", "deprecated": false, @@ -7635,7 +7635,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "Get a token by its unique ID.", "responses": { "200": { "description": "ResourceToken", @@ -7650,7 +7650,7 @@ }, "x-appwrite": { "method": "get", - "weight": 394, + "weight": 430, "cookies": false, "type": "", "deprecated": false, @@ -7696,7 +7696,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date or permissions.", "responses": { "200": { "description": "ResourceToken", @@ -7711,7 +7711,7 @@ }, "x-appwrite": { "method": "update", - "weight": 397, + "weight": 433, "cookies": false, "type": "", "deprecated": false, @@ -7782,7 +7782,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "Delete a token by its unique ID.", "responses": { "204": { "description": "No content" @@ -7790,7 +7790,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 398, + "weight": 434, "cookies": false, "type": "", "deprecated": false, @@ -7838,7 +7838,7 @@ "tags": [ "tokens" ], - "description": "", + "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", @@ -7853,7 +7853,7 @@ }, "x-appwrite": { "method": "getJWT", - "weight": 395, + "weight": 431, "cookies": false, "type": "", "deprecated": false, diff --git a/app/config/specs/open-api3-latest-console.json b/app/config/specs/open-api3-latest-console.json index f9c98cc5d9..6c999d047a 100644 --- a/app/config/specs/open-api3-latest-console.json +++ b/app/config/specs/open-api3-latest-console.json @@ -29578,7 +29578,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", "responses": { "200": { "description": "Resource Tokens List", @@ -29593,7 +29593,7 @@ }, "x-appwrite": { "method": "list", - "weight": 396, + "weight": 432, "cookies": false, "type": "", "deprecated": false, @@ -29659,7 +29659,7 @@ "tags": [ "tokens" ], - "description": "", + "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.", "responses": { "201": { "description": "ResourceToken", @@ -29674,7 +29674,7 @@ }, "x-appwrite": { "method": "createFileToken", - "weight": 393, + "weight": 429, "cookies": false, "type": "", "deprecated": false, @@ -29757,7 +29757,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "Get a token by its unique ID.", "responses": { "200": { "description": "ResourceToken", @@ -29772,7 +29772,7 @@ }, "x-appwrite": { "method": "get", - "weight": 394, + "weight": 430, "cookies": false, "type": "", "deprecated": false, @@ -29818,7 +29818,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date or permissions.", "responses": { "200": { "description": "ResourceToken", @@ -29833,7 +29833,7 @@ }, "x-appwrite": { "method": "update", - "weight": 397, + "weight": 433, "cookies": false, "type": "", "deprecated": false, @@ -29904,7 +29904,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "Delete a token by its unique ID.", "responses": { "204": { "description": "No content" @@ -29912,7 +29912,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 398, + "weight": 434, "cookies": false, "type": "", "deprecated": false, @@ -29960,7 +29960,7 @@ "tags": [ "tokens" ], - "description": "", + "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", @@ -29975,7 +29975,7 @@ }, "x-appwrite": { "method": "getJWT", - "weight": 395, + "weight": 431, "cookies": false, "type": "", "deprecated": false, diff --git a/app/config/specs/open-api3-latest-server.json b/app/config/specs/open-api3-latest-server.json index eaeba62029..ca30c5260e 100644 --- a/app/config/specs/open-api3-latest-server.json +++ b/app/config/specs/open-api3-latest-server.json @@ -21134,7 +21134,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", "responses": { "200": { "description": "Resource Tokens List", @@ -21149,7 +21149,7 @@ }, "x-appwrite": { "method": "list", - "weight": 396, + "weight": 432, "cookies": false, "type": "", "deprecated": false, @@ -21217,7 +21217,7 @@ "tags": [ "tokens" ], - "description": "", + "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.", "responses": { "201": { "description": "ResourceToken", @@ -21232,7 +21232,7 @@ }, "x-appwrite": { "method": "createFileToken", - "weight": 393, + "weight": 429, "cookies": false, "type": "", "deprecated": false, @@ -21317,7 +21317,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "Get a token by its unique ID.", "responses": { "200": { "description": "ResourceToken", @@ -21332,7 +21332,7 @@ }, "x-appwrite": { "method": "get", - "weight": 394, + "weight": 430, "cookies": false, "type": "", "deprecated": false, @@ -21380,7 +21380,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date or permissions.", "responses": { "200": { "description": "ResourceToken", @@ -21395,7 +21395,7 @@ }, "x-appwrite": { "method": "update", - "weight": 397, + "weight": 433, "cookies": false, "type": "", "deprecated": false, @@ -21468,7 +21468,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "Delete a token by its unique ID.", "responses": { "204": { "description": "No content" @@ -21476,7 +21476,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 398, + "weight": 434, "cookies": false, "type": "", "deprecated": false, @@ -21526,7 +21526,7 @@ "tags": [ "tokens" ], - "description": "", + "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", @@ -21541,7 +21541,7 @@ }, "x-appwrite": { "method": "getJWT", - "weight": 395, + "weight": 431, "cookies": false, "type": "", "deprecated": false, diff --git a/app/config/specs/swagger2-1.7.x-client.json b/app/config/specs/swagger2-1.7.x-client.json index 9e46409693..0dd88e6d4f 100644 --- a/app/config/specs/swagger2-1.7.x-client.json +++ b/app/config/specs/swagger2-1.7.x-client.json @@ -4918,7 +4918,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a list of all the current user function execution logs. You can use the query params to filter your results.", "responses": { "200": { "description": "Executions List", @@ -4929,7 +4929,7 @@ }, "x-appwrite": { "method": "listExecutions", - "weight": 383, + "weight": 384, "cookies": false, "type": "", "deprecated": false, @@ -4991,7 +4991,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.", "responses": { "201": { "description": "Execution", @@ -5002,7 +5002,7 @@ }, "x-appwrite": { "method": "createExecution", - "weight": 381, + "weight": 382, "cookies": false, "type": "", "deprecated": false, @@ -5109,7 +5109,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a function execution log by its unique ID.", "responses": { "200": { "description": "Execution", @@ -5120,7 +5120,7 @@ }, "x-appwrite": { "method": "getExecution", - "weight": 382, + "weight": 383, "cookies": false, "type": "", "deprecated": false, @@ -5761,7 +5761,7 @@ }, "x-appwrite": { "method": "createSubscriber", - "weight": 348, + "weight": 349, "cookies": false, "type": "", "deprecated": false, @@ -5845,7 +5845,7 @@ }, "x-appwrite": { "method": "deleteSubscriber", - "weight": 352, + "weight": 353, "cookies": false, "type": "", "deprecated": false, @@ -7653,6 +7653,451 @@ } ] } + }, + "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "List tokens", + "operationId": "tokensList", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "tokens" + ], + "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Resource Tokens List", + "schema": { + "$ref": "#\/definitions\/resourceTokenList" + } + } + }, + "x-appwrite": { + "method": "list", + "weight": 432, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "tokens\/list.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterList all the tokens created for a specific file or bucket. You can use the query params to filter your results.", + "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": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "queries", + "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. You may filter on the following attributes: expire", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + } + ] + }, + "post": { + "summary": "Create file token", + "operationId": "tokensCreateFileToken", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "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.", + "responses": { + "201": { + "description": "ResourceToken", + "schema": { + "$ref": "#\/definitions\/resourceToken" + } + } + }, + "x-appwrite": { + "method": "createFileToken", + "weight": 429, + "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.", + "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": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "expire": { + "type": "string", + "description": "Token expiry date", + "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": [ + "application\/json" + ], + "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", + "weight": 430, + "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", + "weight": 433, + "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", + "weight": 434, + "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": [ + "application\/json" + ], + "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", + "weight": 431, + "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": [ @@ -7875,6 +8320,31 @@ "files" ] }, + "resourceTokenList": { + "description": "Resource Tokens List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of tokens documents that matched your query.", + "x-example": 5, + "format": "int32" + }, + "tokens": { + "type": "array", + "description": "List of tokens.", + "items": { + "type": "object", + "$ref": "#\/definitions\/resourceToken" + }, + "x-example": "" + } + }, + "required": [ + "total", + "tokens" + ] + }, "teamList": { "description": "Teams List", "type": "object", @@ -9082,6 +9552,50 @@ "chunksUploaded" ] }, + "resourceToken": { + "description": "ResourceToken", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "x-example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "resourceId": { + "type": "string", + "description": "Resource ID.", + "x-example": "5e5ea5c168bb8:5e5ea5c168bb8" + }, + "resourceInternalId": { + "type": "string", + "description": "File ID.", + "x-example": "1:1" + }, + "resourceType": { + "type": "string", + "description": "Resource type.", + "x-example": "file" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "resourceId", + "resourceInternalId", + "resourceType", + "expire" + ] + }, "team": { "description": "Team", "type": "object", diff --git a/app/config/specs/swagger2-1.7.x-console.json b/app/config/specs/swagger2-1.7.x-console.json index 2c1d094b63..94dad7013c 100644 --- a/app/config/specs/swagger2-1.7.x-console.json +++ b/app/config/specs/swagger2-1.7.x-console.json @@ -4555,7 +4555,7 @@ "tags": [ "console" ], - "description": "", + "description": "Check if a resource ID is available.", "responses": { "204": { "description": "No content" @@ -4563,7 +4563,7 @@ }, "x-appwrite": { "method": "getResource", - "weight": 423, + "weight": 424, "cookies": false, "type": "", "deprecated": false, @@ -9189,7 +9189,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a list of all the project's functions. You can use the query params to filter your results.", "responses": { "200": { "description": "Functions List", @@ -9200,7 +9200,7 @@ }, "x-appwrite": { "method": "list", - "weight": 367, + "weight": 368, "cookies": false, "type": "", "deprecated": false, @@ -9260,7 +9260,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a new function. You can pass a list of [permissions](https:\/\/appwrite.io\/docs\/permissions) to allow different project users or team with access to execute the function using the client API.", "responses": { "201": { "description": "Function", @@ -9271,7 +9271,7 @@ }, "x-appwrite": { "method": "create", - "weight": 364, + "weight": 365, "cookies": false, "type": "", "deprecated": false, @@ -9510,7 +9510,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a list of all runtimes that are currently active on your instance.", "responses": { "200": { "description": "Runtimes List", @@ -9521,7 +9521,7 @@ }, "x-appwrite": { "method": "listRuntimes", - "weight": 369, + "weight": 370, "cookies": false, "type": "", "deprecated": false, @@ -9560,7 +9560,7 @@ "tags": [ "functions" ], - "description": "", + "description": "List allowed function specifications for this instance.", "responses": { "200": { "description": "Specifications List", @@ -9571,7 +9571,7 @@ }, "x-appwrite": { "method": "listSpecifications", - "weight": 370, + "weight": 371, "cookies": false, "type": "", "deprecated": false, @@ -9611,7 +9611,7 @@ "tags": [ "functions" ], - "description": "", + "description": "List available function templates. You can use template details in [createFunction](\/docs\/references\/cloud\/server-nodejs\/functions#create) method.", "responses": { "200": { "description": "Function Templates List", @@ -9622,7 +9622,7 @@ }, "x-appwrite": { "method": "listTemplates", - "weight": 393, + "weight": 394, "cookies": false, "type": "", "deprecated": false, @@ -9706,7 +9706,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a function template using ID. You can use template details in [createFunction](\/docs\/references\/cloud\/server-nodejs\/functions#create) method.", "responses": { "200": { "description": "Template Function", @@ -9717,7 +9717,7 @@ }, "x-appwrite": { "method": "getTemplate", - "weight": 392, + "weight": 393, "cookies": false, "type": "", "deprecated": false, @@ -9765,7 +9765,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get usage metrics and statistics for all functions in the project. View statistics including total deployments, builds, logs, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", "responses": { "200": { "description": "UsageFunctions", @@ -9776,7 +9776,7 @@ }, "x-appwrite": { "method": "listUsage", - "weight": 386, + "weight": 387, "cookies": false, "type": "", "deprecated": false, @@ -9836,7 +9836,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a function by its unique ID.", "responses": { "200": { "description": "Function", @@ -9847,7 +9847,7 @@ }, "x-appwrite": { "method": "get", - "weight": 365, + "weight": 366, "cookies": false, "type": "", "deprecated": false, @@ -9894,7 +9894,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Update function by its unique ID.", "responses": { "200": { "description": "Function", @@ -9905,7 +9905,7 @@ }, "x-appwrite": { "method": "update", - "weight": 366, + "weight": 367, "cookies": false, "type": "", "deprecated": false, @@ -10141,7 +10141,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Delete a function by its unique ID.", "responses": { "204": { "description": "No content" @@ -10149,7 +10149,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 368, + "weight": 369, "cookies": false, "type": "", "deprecated": false, @@ -10198,7 +10198,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Update the function active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your function.", "responses": { "200": { "description": "Function", @@ -10209,7 +10209,7 @@ }, "x-appwrite": { "method": "updateFunctionDeployment", - "weight": 373, + "weight": 374, "cookies": false, "type": "", "deprecated": false, @@ -10276,7 +10276,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a list of all the function's code deployments. You can use the query params to filter your results.", "responses": { "200": { "description": "Deployments List", @@ -10287,7 +10287,7 @@ }, "x-appwrite": { "method": "listDeployments", - "weight": 374, + "weight": 375, "cookies": false, "type": "", "deprecated": false, @@ -10355,7 +10355,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a new function code deployment. Use this endpoint to upload a new version of your code function. To execute your newly uploaded code, you'll need to update the function's deployment to use your new deployment UID.\n\nThis endpoint accepts a tar.gz file compressed with your code. Make sure to include any dependencies your code has within the compressed file. You can learn more about code packaging in the [Appwrite Cloud Functions tutorial](https:\/\/appwrite.io\/docs\/functions).\n\nUse the \"command\" param to set the entrypoint used to execute your code.", "responses": { "202": { "description": "Deployment", @@ -10366,7 +10366,7 @@ }, "x-appwrite": { "method": "createDeployment", - "weight": 371, + "weight": 372, "cookies": false, "type": "upload", "deprecated": false, @@ -10446,7 +10446,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a new build for an existing function deployment. This endpoint allows you to rebuild a deployment with the updated function configuration, including its entrypoint and build commands if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", "responses": { "202": { "description": "Deployment", @@ -10457,7 +10457,7 @@ }, "x-appwrite": { "method": "createDuplicateDeployment", - "weight": 379, + "weight": 380, "cookies": false, "type": "", "deprecated": false, @@ -10530,7 +10530,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/server\/functions#listTemplates) to find the template details.", "responses": { "202": { "description": "Deployment", @@ -10541,7 +10541,7 @@ }, "x-appwrite": { "method": "createTemplateDeployment", - "weight": 376, + "weight": 377, "cookies": false, "type": "", "deprecated": false, @@ -10635,7 +10635,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a deployment when a function is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", "responses": { "202": { "description": "Deployment", @@ -10646,7 +10646,7 @@ }, "x-appwrite": { "method": "createVcsDeployment", - "weight": 377, + "weight": 378, "cookies": false, "type": "", "deprecated": false, @@ -10732,7 +10732,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a function deployment by its unique ID.", "responses": { "200": { "description": "Deployment", @@ -10743,7 +10743,7 @@ }, "x-appwrite": { "method": "getDeployment", - "weight": 372, + "weight": 373, "cookies": false, "type": "", "deprecated": false, @@ -10796,7 +10796,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Delete a code deployment by its unique ID.", "responses": { "204": { "description": "No content" @@ -10804,7 +10804,7 @@ }, "x-appwrite": { "method": "deleteDeployment", - "weight": 375, + "weight": 376, "cookies": false, "type": "", "deprecated": false, @@ -10861,7 +10861,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a function deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", "responses": { "200": { "description": "File", @@ -10872,7 +10872,7 @@ }, "x-appwrite": { "method": "getDeploymentDownload", - "weight": 378, + "weight": 379, "cookies": false, "type": "location", "deprecated": false, @@ -10946,7 +10946,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Cancel an ongoing function deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", "responses": { "200": { "description": "Deployment", @@ -10957,7 +10957,7 @@ }, "x-appwrite": { "method": "updateDeploymentStatus", - "weight": 380, + "weight": 381, "cookies": false, "type": "", "deprecated": false, @@ -11014,7 +11014,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a list of all the current user function execution logs. You can use the query params to filter your results.", "responses": { "200": { "description": "Executions List", @@ -11025,7 +11025,7 @@ }, "x-appwrite": { "method": "listExecutions", - "weight": 383, + "weight": 384, "cookies": false, "type": "", "deprecated": false, @@ -11087,7 +11087,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.", "responses": { "201": { "description": "Execution", @@ -11098,7 +11098,7 @@ }, "x-appwrite": { "method": "createExecution", - "weight": 381, + "weight": 382, "cookies": false, "type": "", "deprecated": false, @@ -11205,7 +11205,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a function execution log by its unique ID.", "responses": { "200": { "description": "Execution", @@ -11216,7 +11216,7 @@ }, "x-appwrite": { "method": "getExecution", - "weight": 382, + "weight": 383, "cookies": false, "type": "", "deprecated": false, @@ -11272,7 +11272,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Delete a function execution by its unique ID.", "responses": { "204": { "description": "No content" @@ -11280,7 +11280,7 @@ }, "x-appwrite": { "method": "deleteExecution", - "weight": 384, + "weight": 385, "cookies": false, "type": "", "deprecated": false, @@ -11337,7 +11337,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get usage metrics and statistics for a for a specific function. View statistics including total deployments, builds, executions, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", "responses": { "200": { "description": "UsageFunction", @@ -11348,7 +11348,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 385, + "weight": 386, "cookies": false, "type": "", "deprecated": false, @@ -11416,7 +11416,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a list of all variables of a specific function.", "responses": { "200": { "description": "Variables List", @@ -11427,7 +11427,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 389, + "weight": 390, "cookies": false, "type": "", "deprecated": false, @@ -11474,7 +11474,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.", "responses": { "201": { "description": "Variable", @@ -11485,7 +11485,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 387, + "weight": 388, "cookies": false, "type": "", "deprecated": false, @@ -11565,7 +11565,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a variable by its unique ID.", "responses": { "200": { "description": "Variable", @@ -11576,7 +11576,7 @@ }, "x-appwrite": { "method": "getVariable", - "weight": 388, + "weight": 389, "cookies": false, "type": "", "deprecated": false, @@ -11631,7 +11631,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Update variable by its unique ID.", "responses": { "200": { "description": "Variable", @@ -11642,7 +11642,7 @@ }, "x-appwrite": { "method": "updateVariable", - "weight": 390, + "weight": 391, "cookies": false, "type": "", "deprecated": false, @@ -11725,7 +11725,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Delete a variable by its unique ID.", "responses": { "204": { "description": "No content" @@ -11733,7 +11733,7 @@ }, "x-appwrite": { "method": "deleteVariable", - "weight": 391, + "weight": 392, "cookies": false, "type": "", "deprecated": false, @@ -13718,7 +13718,7 @@ }, "x-appwrite": { "method": "listMessages", - "weight": 356, + "weight": 357, "cookies": false, "type": "", "deprecated": false, @@ -13792,7 +13792,7 @@ }, "x-appwrite": { "method": "createEmail", - "weight": 353, + "weight": 354, "cookies": false, "type": "", "deprecated": false, @@ -13949,7 +13949,7 @@ }, "x-appwrite": { "method": "updateEmail", - "weight": 360, + "weight": 361, "cookies": false, "type": "", "deprecated": false, @@ -14103,7 +14103,7 @@ }, "x-appwrite": { "method": "createPush", - "weight": 355, + "weight": 356, "cookies": false, "type": "", "deprecated": false, @@ -14297,7 +14297,7 @@ }, "x-appwrite": { "method": "updatePush", - "weight": 362, + "weight": 363, "cookies": false, "type": "", "deprecated": false, @@ -14490,7 +14490,7 @@ }, "x-appwrite": { "method": "createSms", - "weight": 354, + "weight": 355, "cookies": false, "type": "", "deprecated": false, @@ -14607,7 +14607,7 @@ }, "x-appwrite": { "method": "updateSms", - "weight": 361, + "weight": 362, "cookies": false, "type": "", "deprecated": false, @@ -14722,7 +14722,7 @@ }, "x-appwrite": { "method": "getMessage", - "weight": 359, + "weight": 360, "cookies": false, "type": "", "deprecated": false, @@ -14776,7 +14776,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 363, + "weight": 364, "cookies": false, "type": "", "deprecated": false, @@ -14837,7 +14837,7 @@ }, "x-appwrite": { "method": "listMessageLogs", - "weight": 357, + "weight": 358, "cookies": false, "type": "", "deprecated": false, @@ -14910,7 +14910,7 @@ }, "x-appwrite": { "method": "listTargets", - "weight": 358, + "weight": 359, "cookies": false, "type": "", "deprecated": false, @@ -14983,7 +14983,7 @@ }, "x-appwrite": { "method": "listProviders", - "weight": 328, + "weight": 329, "cookies": false, "type": "", "deprecated": false, @@ -15057,7 +15057,7 @@ }, "x-appwrite": { "method": "createApnsProvider", - "weight": 327, + "weight": 328, "cookies": false, "type": "", "deprecated": false, @@ -15171,7 +15171,7 @@ }, "x-appwrite": { "method": "updateApnsProvider", - "weight": 340, + "weight": 341, "cookies": false, "type": "", "deprecated": false, @@ -15283,7 +15283,7 @@ }, "x-appwrite": { "method": "createFcmProvider", - "weight": 326, + "weight": 327, "cookies": false, "type": "", "deprecated": false, @@ -15373,7 +15373,7 @@ }, "x-appwrite": { "method": "updateFcmProvider", - "weight": 339, + "weight": 340, "cookies": false, "type": "", "deprecated": false, @@ -15461,7 +15461,7 @@ }, "x-appwrite": { "method": "createMailgunProvider", - "weight": 318, + "weight": 319, "cookies": false, "type": "", "deprecated": false, @@ -15587,7 +15587,7 @@ }, "x-appwrite": { "method": "updateMailgunProvider", - "weight": 331, + "weight": 332, "cookies": false, "type": "", "deprecated": false, @@ -15711,7 +15711,7 @@ }, "x-appwrite": { "method": "createMsg91Provider", - "weight": 321, + "weight": 322, "cookies": false, "type": "", "deprecated": false, @@ -15813,7 +15813,7 @@ }, "x-appwrite": { "method": "updateMsg91Provider", - "weight": 334, + "weight": 335, "cookies": false, "type": "", "deprecated": false, @@ -15913,7 +15913,7 @@ }, "x-appwrite": { "method": "createSendgridProvider", - "weight": 319, + "weight": 320, "cookies": false, "type": "", "deprecated": false, @@ -16027,7 +16027,7 @@ }, "x-appwrite": { "method": "updateSendgridProvider", - "weight": 332, + "weight": 333, "cookies": false, "type": "", "deprecated": false, @@ -16139,7 +16139,7 @@ }, "x-appwrite": { "method": "createSmtpProvider", - "weight": 320, + "weight": 321, "cookies": false, "type": "", "deprecated": false, @@ -16297,7 +16297,7 @@ }, "x-appwrite": { "method": "updateSmtpProvider", - "weight": 333, + "weight": 334, "cookies": false, "type": "", "deprecated": false, @@ -16452,7 +16452,7 @@ }, "x-appwrite": { "method": "createTelesignProvider", - "weight": 322, + "weight": 323, "cookies": false, "type": "", "deprecated": false, @@ -16554,7 +16554,7 @@ }, "x-appwrite": { "method": "updateTelesignProvider", - "weight": 335, + "weight": 336, "cookies": false, "type": "", "deprecated": false, @@ -16654,7 +16654,7 @@ }, "x-appwrite": { "method": "createTextmagicProvider", - "weight": 323, + "weight": 324, "cookies": false, "type": "", "deprecated": false, @@ -16756,7 +16756,7 @@ }, "x-appwrite": { "method": "updateTextmagicProvider", - "weight": 336, + "weight": 337, "cookies": false, "type": "", "deprecated": false, @@ -16856,7 +16856,7 @@ }, "x-appwrite": { "method": "createTwilioProvider", - "weight": 324, + "weight": 325, "cookies": false, "type": "", "deprecated": false, @@ -16958,7 +16958,7 @@ }, "x-appwrite": { "method": "updateTwilioProvider", - "weight": 337, + "weight": 338, "cookies": false, "type": "", "deprecated": false, @@ -17058,7 +17058,7 @@ }, "x-appwrite": { "method": "createVonageProvider", - "weight": 325, + "weight": 326, "cookies": false, "type": "", "deprecated": false, @@ -17160,7 +17160,7 @@ }, "x-appwrite": { "method": "updateVonageProvider", - "weight": 338, + "weight": 339, "cookies": false, "type": "", "deprecated": false, @@ -17260,7 +17260,7 @@ }, "x-appwrite": { "method": "getProvider", - "weight": 330, + "weight": 331, "cookies": false, "type": "", "deprecated": false, @@ -17314,7 +17314,7 @@ }, "x-appwrite": { "method": "deleteProvider", - "weight": 341, + "weight": 342, "cookies": false, "type": "", "deprecated": false, @@ -17375,7 +17375,7 @@ }, "x-appwrite": { "method": "listProviderLogs", - "weight": 329, + "weight": 330, "cookies": false, "type": "", "deprecated": false, @@ -17448,7 +17448,7 @@ }, "x-appwrite": { "method": "listSubscriberLogs", - "weight": 350, + "weight": 351, "cookies": false, "type": "", "deprecated": false, @@ -17521,7 +17521,7 @@ }, "x-appwrite": { "method": "listTopics", - "weight": 343, + "weight": 344, "cookies": false, "type": "", "deprecated": false, @@ -17593,7 +17593,7 @@ }, "x-appwrite": { "method": "createTopic", - "weight": 342, + "weight": 343, "cookies": false, "type": "", "deprecated": false, @@ -17682,7 +17682,7 @@ }, "x-appwrite": { "method": "getTopic", - "weight": 345, + "weight": 346, "cookies": false, "type": "", "deprecated": false, @@ -17741,7 +17741,7 @@ }, "x-appwrite": { "method": "updateTopic", - "weight": 346, + "weight": 347, "cookies": false, "type": "", "deprecated": false, @@ -17819,7 +17819,7 @@ }, "x-appwrite": { "method": "deleteTopic", - "weight": 347, + "weight": 348, "cookies": false, "type": "", "deprecated": false, @@ -17880,7 +17880,7 @@ }, "x-appwrite": { "method": "listTopicLogs", - "weight": 344, + "weight": 345, "cookies": false, "type": "", "deprecated": false, @@ -17953,7 +17953,7 @@ }, "x-appwrite": { "method": "listSubscribers", - "weight": 349, + "weight": 350, "cookies": false, "type": "", "deprecated": false, @@ -18033,7 +18033,7 @@ }, "x-appwrite": { "method": "createSubscriber", - "weight": 348, + "weight": 349, "cookies": false, "type": "", "deprecated": false, @@ -18122,7 +18122,7 @@ }, "x-appwrite": { "method": "getSubscriber", - "weight": 351, + "weight": 352, "cookies": false, "type": "", "deprecated": false, @@ -18184,7 +18184,7 @@ }, "x-appwrite": { "method": "deleteSubscriber", - "weight": 352, + "weight": 353, "cookies": false, "type": "", "deprecated": false, @@ -18256,7 +18256,7 @@ }, "x-appwrite": { "method": "list", - "weight": 310, + "weight": 311, "cookies": false, "type": "", "deprecated": false, @@ -18421,7 +18421,7 @@ }, "x-appwrite": { "method": "getAppwriteReport", - "weight": 312, + "weight": 313, "cookies": false, "type": "", "deprecated": false, @@ -18484,6 +18484,89 @@ ] } }, + "\/migrations\/csv": { + "post": { + "summary": "Import documents from a CSV", + "operationId": "migrationsCreateCsvMigration", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "migrations" + ], + "description": "Import documents from a CSV file into your Appwrite database. This endpoint allows you to import documents from a CSV file uploaded to Appwrite Storage bucket.", + "responses": { + "202": { + "description": "Migration", + "schema": { + "$ref": "#\/definitions\/migration" + } + } + }, + "x-appwrite": { + "method": "createCsvMigration", + "weight": 310, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "migrations\/create-csv-migration.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "bucketId": { + "type": "string", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "default": null, + "x-example": "" + }, + "fileId": { + "type": "string", + "description": "File ID.", + "default": null, + "x-example": "" + }, + "resourceId": { + "type": "string", + "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database.", + "default": null, + "x-example": "[ID1:ID2]" + } + }, + "required": [ + "bucketId", + "fileId", + "resourceId" + ] + } + } + ] + } + }, "\/migrations\/firebase": { "post": { "summary": "Migrate Firebase data", @@ -18587,7 +18670,7 @@ }, "x-appwrite": { "method": "getFirebaseReport", - "weight": 313, + "weight": 314, "cookies": false, "type": "", "deprecated": false, @@ -18777,7 +18860,7 @@ }, "x-appwrite": { "method": "getNHostReport", - "weight": 315, + "weight": 316, "cookies": false, "type": "", "deprecated": false, @@ -19009,7 +19092,7 @@ }, "x-appwrite": { "method": "getSupabaseReport", - "weight": 314, + "weight": 315, "cookies": false, "type": "", "deprecated": false, @@ -19121,7 +19204,7 @@ }, "x-appwrite": { "method": "get", - "weight": 311, + "weight": 312, "cookies": false, "type": "", "deprecated": false, @@ -19178,7 +19261,7 @@ }, "x-appwrite": { "method": "retry", - "weight": 316, + "weight": 317, "cookies": false, "type": "", "deprecated": false, @@ -19230,7 +19313,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 317, + "weight": 318, "cookies": false, "type": "", "deprecated": false, @@ -24582,7 +24665,7 @@ "tags": [ "proxy" ], - "description": "", + "description": "Create a new proxy rule for serving Appwrite's API on custom domain.", "responses": { "201": { "description": "Rule", @@ -24593,7 +24676,7 @@ }, "x-appwrite": { "method": "createAPIRule", - "weight": 424, + "weight": 425, "cookies": false, "type": "", "deprecated": false, @@ -24651,7 +24734,7 @@ "tags": [ "proxy" ], - "description": "", + "description": "Create a new proxy rule for executing Appwrite Function on custom domain.", "responses": { "201": { "description": "Rule", @@ -24662,7 +24745,7 @@ }, "x-appwrite": { "method": "createFunctionRule", - "weight": 426, + "weight": 427, "cookies": false, "type": "", "deprecated": false, @@ -24733,7 +24816,7 @@ "tags": [ "proxy" ], - "description": "", + "description": "Create a new proxy rule for to redirect from custom domain to another domain.", "responses": { "201": { "description": "Rule", @@ -24744,7 +24827,7 @@ }, "x-appwrite": { "method": "createRedirectRule", - "weight": 427, + "weight": 428, "cookies": false, "type": "", "deprecated": false, @@ -24829,7 +24912,7 @@ "tags": [ "proxy" ], - "description": "", + "description": "Create a new proxy rule for serving Appwrite Site on custom domain.", "responses": { "201": { "description": "Rule", @@ -24840,7 +24923,7 @@ }, "x-appwrite": { "method": "createSiteRule", - "weight": 425, + "weight": 426, "cookies": false, "type": "", "deprecated": false, @@ -25081,7 +25164,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a list of all the project's sites. You can use the query params to filter your results.", "responses": { "200": { "description": "Sites List", @@ -25092,7 +25175,7 @@ }, "x-appwrite": { "method": "list", - "weight": 396, + "weight": 397, "cookies": false, "type": "", "deprecated": false, @@ -25152,7 +25235,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Create a new site.", "responses": { "201": { "description": "Site", @@ -25163,7 +25246,7 @@ }, "x-appwrite": { "method": "create", - "weight": 394, + "weight": 395, "cookies": false, "type": "", "deprecated": false, @@ -25244,7 +25327,7 @@ "timeout": { "type": "integer", "description": "Maximum request time in seconds.", - "default": 15, + "default": 30, "x-example": 1 }, "installCommand": { @@ -25417,7 +25500,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a list of all frameworks that are currently available on the server instance.", "responses": { "200": { "description": "Frameworks List", @@ -25428,7 +25511,7 @@ }, "x-appwrite": { "method": "listFrameworks", - "weight": 399, + "weight": 400, "cookies": false, "type": "", "deprecated": false, @@ -25467,7 +25550,7 @@ "tags": [ "sites" ], - "description": "", + "description": "List allowed site specifications for this instance.", "responses": { "200": { "description": "Specifications List", @@ -25478,7 +25561,7 @@ }, "x-appwrite": { "method": "listSpecifications", - "weight": 422, + "weight": 423, "cookies": false, "type": "", "deprecated": false, @@ -25518,7 +25601,7 @@ "tags": [ "sites" ], - "description": "", + "description": "List available site templates. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", "responses": { "200": { "description": "Site Templates List", @@ -25529,7 +25612,7 @@ }, "x-appwrite": { "method": "listTemplates", - "weight": 418, + "weight": 419, "cookies": false, "type": "", "deprecated": false, @@ -25613,7 +25696,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a site template using ID. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", "responses": { "200": { "description": "Template Site", @@ -25624,7 +25707,7 @@ }, "x-appwrite": { "method": "getTemplate", - "weight": 419, + "weight": 420, "cookies": false, "type": "", "deprecated": false, @@ -25672,7 +25755,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get usage metrics and statistics for all sites in the project. View statistics including total deployments, builds, logs, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", "responses": { "200": { "description": "UsageSites", @@ -25683,7 +25766,7 @@ }, "x-appwrite": { "method": "listUsage", - "weight": 420, + "weight": 421, "cookies": false, "type": "", "deprecated": false, @@ -25743,7 +25826,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a site by its unique ID.", "responses": { "200": { "description": "Site", @@ -25754,7 +25837,7 @@ }, "x-appwrite": { "method": "get", - "weight": 395, + "weight": 396, "cookies": false, "type": "", "deprecated": false, @@ -25801,7 +25884,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Update site by its unique ID.", "responses": { "200": { "description": "Site", @@ -25812,7 +25895,7 @@ }, "x-appwrite": { "method": "update", - "weight": 397, + "weight": 398, "cookies": false, "type": "", "deprecated": false, @@ -25895,7 +25978,7 @@ "timeout": { "type": "integer", "description": "Maximum request time in seconds.", - "default": 15, + "default": 30, "x-example": 1 }, "installCommand": { @@ -26062,7 +26145,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Delete a site by its unique ID.", "responses": { "204": { "description": "No content" @@ -26070,7 +26153,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 398, + "weight": 399, "cookies": false, "type": "", "deprecated": false, @@ -26119,7 +26202,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Update the site active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your site.", "responses": { "200": { "description": "Site", @@ -26130,7 +26213,7 @@ }, "x-appwrite": { "method": "updateSiteDeployment", - "weight": 405, + "weight": 406, "cookies": false, "type": "", "deprecated": false, @@ -26197,7 +26280,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a list of all the site's code deployments. You can use the query params to filter your results.", "responses": { "200": { "description": "Deployments List", @@ -26208,7 +26291,7 @@ }, "x-appwrite": { "method": "listDeployments", - "weight": 404, + "weight": 405, "cookies": false, "type": "", "deprecated": false, @@ -26276,7 +26359,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the function's deployment to use your new deployment ID.", "responses": { "202": { "description": "Deployment", @@ -26287,7 +26370,7 @@ }, "x-appwrite": { "method": "createDeployment", - "weight": 400, + "weight": 401, "cookies": false, "type": "upload", "deprecated": false, @@ -26375,7 +26458,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Create a new build for an existing site deployment. This endpoint allows you to rebuild a deployment with the updated site configuration, including its commands and output directory if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", "responses": { "202": { "description": "Deployment", @@ -26386,7 +26469,7 @@ }, "x-appwrite": { "method": "createDuplicateDeployment", - "weight": 408, + "weight": 409, "cookies": false, "type": "", "deprecated": false, @@ -26442,7 +26525,7 @@ }, "\/sites\/{siteId}\/deployments\/template": { "post": { - "summary": "Create deployment", + "summary": "Create template deployment", "operationId": "sitesCreateTemplateDeployment", "consumes": [ "application\/json" @@ -26453,7 +26536,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/server\/sites#listTemplates) to find the template details.", "responses": { "202": { "description": "Deployment", @@ -26464,7 +26547,7 @@ }, "x-appwrite": { "method": "createTemplateDeployment", - "weight": 401, + "weight": 402, "cookies": false, "type": "", "deprecated": false, @@ -26558,7 +26641,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Create a deployment when a site is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", "responses": { "202": { "description": "Deployment", @@ -26569,7 +26652,7 @@ }, "x-appwrite": { "method": "createVcsDeployment", - "weight": 402, + "weight": 403, "cookies": false, "type": "", "deprecated": false, @@ -26656,7 +26739,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a site deployment by its unique ID.", "responses": { "200": { "description": "Deployment", @@ -26667,7 +26750,7 @@ }, "x-appwrite": { "method": "getDeployment", - "weight": 403, + "weight": 404, "cookies": false, "type": "", "deprecated": false, @@ -26720,7 +26803,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Delete a site deployment by its unique ID.", "responses": { "204": { "description": "No content" @@ -26728,7 +26811,7 @@ }, "x-appwrite": { "method": "deleteDeployment", - "weight": 406, + "weight": 407, "cookies": false, "type": "", "deprecated": false, @@ -26785,7 +26868,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a site deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", "responses": { "200": { "description": "File", @@ -26796,7 +26879,7 @@ }, "x-appwrite": { "method": "getDeploymentDownload", - "weight": 407, + "weight": 408, "cookies": false, "type": "location", "deprecated": false, @@ -26870,7 +26953,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Cancel an ongoing site deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", "responses": { "200": { "description": "Deployment", @@ -26881,7 +26964,7 @@ }, "x-appwrite": { "method": "updateDeploymentStatus", - "weight": 409, + "weight": 410, "cookies": false, "type": "", "deprecated": false, @@ -26938,7 +27021,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a list of all site logs. You can use the query params to filter your results.", "responses": { "200": { "description": "Executions List", @@ -26949,7 +27032,7 @@ }, "x-appwrite": { "method": "listLogs", - "weight": 411, + "weight": 412, "cookies": false, "type": "", "deprecated": false, @@ -27010,7 +27093,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a site request log by its unique ID.", "responses": { "200": { "description": "Execution", @@ -27021,7 +27104,7 @@ }, "x-appwrite": { "method": "getLog", - "weight": 410, + "weight": 411, "cookies": false, "type": "", "deprecated": false, @@ -27076,7 +27159,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Delete a site log by its unique ID.", "responses": { "204": { "description": "No content" @@ -27084,7 +27167,7 @@ }, "x-appwrite": { "method": "deleteLog", - "weight": 412, + "weight": 413, "cookies": false, "type": "", "deprecated": false, @@ -27141,7 +27224,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get usage metrics and statistics for a for a specific site. View statistics including total deployments, builds, executions, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", "responses": { "200": { "description": "UsageSite", @@ -27152,7 +27235,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 421, + "weight": 422, "cookies": false, "type": "", "deprecated": false, @@ -27220,7 +27303,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a list of all variables of a specific site.", "responses": { "200": { "description": "Variables List", @@ -27231,7 +27314,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 415, + "weight": 416, "cookies": false, "type": "", "deprecated": false, @@ -27278,7 +27361,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.", "responses": { "201": { "description": "Variable", @@ -27289,7 +27372,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 413, + "weight": 414, "cookies": false, "type": "", "deprecated": false, @@ -27369,7 +27452,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a variable by its unique ID.", "responses": { "200": { "description": "Variable", @@ -27380,7 +27463,7 @@ }, "x-appwrite": { "method": "getVariable", - "weight": 414, + "weight": 415, "cookies": false, "type": "", "deprecated": false, @@ -27435,7 +27518,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Update variable by its unique ID.", "responses": { "200": { "description": "Variable", @@ -27446,7 +27529,7 @@ }, "x-appwrite": { "method": "updateVariable", - "weight": 416, + "weight": 417, "cookies": false, "type": "", "deprecated": false, @@ -27529,7 +27612,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Delete a variable by its unique ID.", "responses": { "204": { "description": "No content" @@ -27537,7 +27620,7 @@ }, "x-appwrite": { "method": "deleteVariable", - "weight": 417, + "weight": 418, "cookies": false, "type": "", "deprecated": false, @@ -30019,6 +30102,451 @@ ] } }, + "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "List tokens", + "operationId": "tokensList", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "tokens" + ], + "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Resource Tokens List", + "schema": { + "$ref": "#\/definitions\/resourceTokenList" + } + } + }, + "x-appwrite": { + "method": "list", + "weight": 432, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "tokens\/list.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterList all the tokens created for a specific file or bucket. You can use the query params to filter your results.", + "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": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "queries", + "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. You may filter on the following attributes: expire", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + } + ] + }, + "post": { + "summary": "Create file token", + "operationId": "tokensCreateFileToken", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "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.", + "responses": { + "201": { + "description": "ResourceToken", + "schema": { + "$ref": "#\/definitions\/resourceToken" + } + } + }, + "x-appwrite": { + "method": "createFileToken", + "weight": 429, + "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.", + "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": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "expire": { + "type": "string", + "description": "Token expiry date", + "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": [ + "application\/json" + ], + "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", + "weight": 430, + "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": [], + "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", + "weight": 433, + "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": [], + "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", + "weight": 434, + "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": [], + "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": [ + "application\/json" + ], + "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", + "weight": 431, + "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", @@ -34386,6 +34914,31 @@ "buckets" ] }, + "resourceTokenList": { + "description": "Resource Tokens List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of tokens documents that matched your query.", + "x-example": 5, + "format": "int32" + }, + "tokens": { + "type": "array", + "description": "List of tokens.", + "items": { + "type": "object", + "$ref": "#\/definitions\/resourceToken" + }, + "x-example": "" + } + }, + "required": [ + "total", + "tokens" + ] + }, "teamList": { "description": "Teams List", "type": "object", @@ -37302,6 +37855,50 @@ "antivirus" ] }, + "resourceToken": { + "description": "ResourceToken", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "x-example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "resourceId": { + "type": "string", + "description": "Resource ID.", + "x-example": "5e5ea5c168bb8:5e5ea5c168bb8" + }, + "resourceInternalId": { + "type": "string", + "description": "File ID.", + "x-example": "1:1" + }, + "resourceType": { + "type": "string", + "description": "Resource type.", + "x-example": "file" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "resourceId", + "resourceInternalId", + "resourceType", + "expire" + ] + }, "team": { "description": "Team", "type": "object", @@ -40527,6 +41124,18 @@ }, "x-example": [] }, + "buildsSuccessTotal": { + "type": "integer", + "description": "Total aggregated number of successful function builds.", + "x-example": 0, + "format": "int32" + }, + "buildsFailedTotal": { + "type": "integer", + "description": "Total aggregated number of failed function builds.", + "x-example": 0, + "format": "int32" + }, "builds": { "type": "array", "description": "Aggregated number of functions build per period.", @@ -40589,6 +41198,24 @@ "$ref": "#\/definitions\/metric" }, "x-example": [] + }, + "buildsSuccess": { + "type": "array", + "description": "Aggregated number of successful function builds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsFailed": { + "type": "array", + "description": "Aggregated number of failed function builds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] } }, "required": [ @@ -40606,13 +41233,17 @@ "functions", "deployments", "deploymentsStorage", + "buildsSuccessTotal", + "buildsFailedTotal", "builds", "buildsStorage", "buildsTime", "buildsMbSeconds", "executions", "executionsTime", - "executionsMbSeconds" + "executionsMbSeconds", + "buildsSuccess", + "buildsFailed" ] }, "usageFunction": { @@ -40642,6 +41273,18 @@ "x-example": 0, "format": "int32" }, + "buildsSuccessTotal": { + "type": "integer", + "description": "Total aggregated number of successful function builds.", + "x-example": 0, + "format": "int32" + }, + "buildsFailedTotal": { + "type": "integer", + "description": "Total aggregated number of failed function builds.", + "x-example": 0, + "format": "int32" + }, "buildsStorageTotal": { "type": "integer", "description": "total aggregated sum of function builds storage.", @@ -40654,6 +41297,12 @@ "x-example": 0, "format": "int32" }, + "buildsTimeAverage": { + "type": "integer", + "description": "Average builds compute time.", + "x-example": 0, + "format": "int32" + }, "buildsMbSecondsTotal": { "type": "integer", "description": "Total aggregated sum of function builds mbSeconds.", @@ -40758,6 +41407,286 @@ "$ref": "#\/definitions\/metric" }, "x-example": [] + }, + "buildsSuccess": { + "type": "array", + "description": "Aggregated number of successful builds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsFailed": { + "type": "array", + "description": "Aggregated number of failed builds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + } + }, + "required": [ + "range", + "deploymentsTotal", + "deploymentsStorageTotal", + "buildsTotal", + "buildsSuccessTotal", + "buildsFailedTotal", + "buildsStorageTotal", + "buildsTimeTotal", + "buildsTimeAverage", + "buildsMbSecondsTotal", + "executionsTotal", + "executionsTimeTotal", + "executionsMbSecondsTotal", + "deployments", + "deploymentsStorage", + "builds", + "buildsStorage", + "buildsTime", + "buildsMbSeconds", + "executions", + "executionsTime", + "executionsMbSeconds", + "buildsSuccess", + "buildsFailed" + ] + }, + "usageSites": { + "description": "UsageSites", + "type": "object", + "properties": { + "range": { + "type": "string", + "description": "Time range of the usage stats.", + "x-example": "30d" + }, + "deploymentsTotal": { + "type": "integer", + "description": "Total aggregated number of functions deployments.", + "x-example": 0, + "format": "int32" + }, + "deploymentsStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of functions deployment storage.", + "x-example": 0, + "format": "int32" + }, + "buildsTotal": { + "type": "integer", + "description": "Total aggregated number of functions build.", + "x-example": 0, + "format": "int32" + }, + "buildsStorageTotal": { + "type": "integer", + "description": "total aggregated sum of functions build storage.", + "x-example": 0, + "format": "int32" + }, + "buildsTimeTotal": { + "type": "integer", + "description": "Total aggregated sum of functions build compute time.", + "x-example": 0, + "format": "int32" + }, + "buildsMbSecondsTotal": { + "type": "integer", + "description": "Total aggregated sum of functions build mbSeconds.", + "x-example": 0, + "format": "int32" + }, + "executionsTotal": { + "type": "integer", + "description": "Total aggregated number of functions execution.", + "x-example": 0, + "format": "int32" + }, + "executionsTimeTotal": { + "type": "integer", + "description": "Total aggregated sum of functions execution compute time.", + "x-example": 0, + "format": "int32" + }, + "executionsMbSecondsTotal": { + "type": "integer", + "description": "Total aggregated sum of functions execution mbSeconds.", + "x-example": 0, + "format": "int32" + }, + "deployments": { + "type": "array", + "description": "Aggregated number of functions deployment per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "deploymentsStorage": { + "type": "array", + "description": "Aggregated number of functions deployment storage per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsSuccessTotal": { + "type": "integer", + "description": "Total aggregated number of successful function builds.", + "x-example": 0, + "format": "int32" + }, + "buildsFailedTotal": { + "type": "integer", + "description": "Total aggregated number of failed function builds.", + "x-example": 0, + "format": "int32" + }, + "builds": { + "type": "array", + "description": "Aggregated number of functions build per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsStorage": { + "type": "array", + "description": "Aggregated sum of functions build storage per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsTime": { + "type": "array", + "description": "Aggregated sum of functions build compute time per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsMbSeconds": { + "type": "array", + "description": "Aggregated sum of functions build mbSeconds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "executions": { + "type": "array", + "description": "Aggregated number of functions execution per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "executionsTime": { + "type": "array", + "description": "Aggregated number of functions execution compute time per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "executionsMbSeconds": { + "type": "array", + "description": "Aggregated number of functions mbSeconds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsSuccess": { + "type": "array", + "description": "Aggregated number of successful function builds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsFailed": { + "type": "array", + "description": "Aggregated number of failed function builds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "sitesTotal": { + "type": "integer", + "description": "Total aggregated number of sites.", + "x-example": 0, + "format": "int32" + }, + "sites": { + "type": "array", + "description": "Aggregated number of sites per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "requestsTotal": { + "type": "integer", + "description": "Total aggregated number of requests.", + "x-example": 0, + "format": "int32" + }, + "requests": { + "type": "array", + "description": "Aggregated number of requests per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "inboundTotal": { + "type": "integer", + "description": "Total aggregated inbound bandwidth.", + "x-example": 0, + "format": "int32" + }, + "inbound": { + "type": "array", + "description": "Aggregated number of inbound bandwidth per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "outboundTotal": { + "type": "integer", + "description": "Total aggregated outbound bandwidth.", + "x-example": 0, + "format": "int32" + }, + "outbound": { + "type": "array", + "description": "Aggregated number of outbound bandwidth per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] } }, "required": [ @@ -40773,146 +41702,25 @@ "executionsMbSecondsTotal", "deployments", "deploymentsStorage", + "buildsSuccessTotal", + "buildsFailedTotal", "builds", "buildsStorage", "buildsTime", "buildsMbSeconds", "executions", "executionsTime", - "executionsMbSeconds" - ] - }, - "usageSites": { - "description": "UsageSites", - "type": "object", - "properties": { - "range": { - "type": "string", - "description": "Time range of the usage stats.", - "x-example": "30d" - }, - "sitesTotal": { - "type": "integer", - "description": "Total aggregated number of sites.", - "x-example": 0, - "format": "int32" - }, - "deploymentsTotal": { - "type": "integer", - "description": "Total aggregated number of sites deployments.", - "x-example": 0, - "format": "int32" - }, - "deploymentsStorageTotal": { - "type": "integer", - "description": "Total aggregated sum of sites deployment storage.", - "x-example": 0, - "format": "int32" - }, - "buildsTotal": { - "type": "integer", - "description": "Total aggregated number of sites build.", - "x-example": 0, - "format": "int32" - }, - "buildsStorageTotal": { - "type": "integer", - "description": "total aggregated sum of sites build storage.", - "x-example": 0, - "format": "int32" - }, - "buildsTimeTotal": { - "type": "integer", - "description": "Total aggregated sum of sites build compute time.", - "x-example": 0, - "format": "int32" - }, - "buildsMbSecondsTotal": { - "type": "integer", - "description": "Total aggregated sum of sites build mbSeconds.", - "x-example": 0, - "format": "int32" - }, - "sites": { - "type": "array", - "description": "Aggregated number of sites per period.", - "items": { - "type": "object", - "$ref": "#\/definitions\/metric" - }, - "x-example": 0 - }, - "deployments": { - "type": "array", - "description": "Aggregated number of sites deployment per period.", - "items": { - "type": "object", - "$ref": "#\/definitions\/metric" - }, - "x-example": [] - }, - "deploymentsStorage": { - "type": "array", - "description": "Aggregated number of sites deployment storage per period.", - "items": { - "type": "object", - "$ref": "#\/definitions\/metric" - }, - "x-example": [] - }, - "builds": { - "type": "array", - "description": "Aggregated number of sites build per period.", - "items": { - "type": "object", - "$ref": "#\/definitions\/metric" - }, - "x-example": [] - }, - "buildsStorage": { - "type": "array", - "description": "Aggregated sum of sites build storage per period.", - "items": { - "type": "object", - "$ref": "#\/definitions\/metric" - }, - "x-example": [] - }, - "buildsTime": { - "type": "array", - "description": "Aggregated sum of sites build compute time per period.", - "items": { - "type": "object", - "$ref": "#\/definitions\/metric" - }, - "x-example": [] - }, - "buildsMbSeconds": { - "type": "array", - "description": "Aggregated sum of sites build mbSeconds per period.", - "items": { - "type": "object", - "$ref": "#\/definitions\/metric" - }, - "x-example": [] - } - }, - "required": [ - "range", + "executionsMbSeconds", + "buildsSuccess", + "buildsFailed", "sitesTotal", - "deploymentsTotal", - "deploymentsStorageTotal", - "buildsTotal", - "buildsStorageTotal", - "buildsTimeTotal", - "buildsMbSecondsTotal", "sites", - "deployments", - "deploymentsStorage", - "builds", - "buildsStorage", - "buildsTime", - "buildsMbSeconds" + "requestsTotal", + "requests", + "inboundTotal", + "inbound", + "outboundTotal", + "outbound" ] }, "usageSite": { @@ -40926,43 +41734,79 @@ }, "deploymentsTotal": { "type": "integer", - "description": "Total aggregated number of site deployments.", + "description": "Total aggregated number of function deployments.", "x-example": 0, "format": "int32" }, "deploymentsStorageTotal": { "type": "integer", - "description": "Total aggregated sum of site deployments storage.", + "description": "Total aggregated sum of function deployments storage.", "x-example": 0, "format": "int32" }, "buildsTotal": { "type": "integer", - "description": "Total aggregated number of site builds.", + "description": "Total aggregated number of function builds.", + "x-example": 0, + "format": "int32" + }, + "buildsSuccessTotal": { + "type": "integer", + "description": "Total aggregated number of successful function builds.", + "x-example": 0, + "format": "int32" + }, + "buildsFailedTotal": { + "type": "integer", + "description": "Total aggregated number of failed function builds.", "x-example": 0, "format": "int32" }, "buildsStorageTotal": { "type": "integer", - "description": "total aggregated sum of site builds storage.", + "description": "total aggregated sum of function builds storage.", "x-example": 0, "format": "int32" }, "buildsTimeTotal": { "type": "integer", - "description": "Total aggregated sum of site builds compute time.", + "description": "Total aggregated sum of function builds compute time.", + "x-example": 0, + "format": "int32" + }, + "buildsTimeAverage": { + "type": "integer", + "description": "Average builds compute time.", "x-example": 0, "format": "int32" }, "buildsMbSecondsTotal": { "type": "integer", - "description": "Total aggregated sum of site builds mbSeconds.", + "description": "Total aggregated sum of function builds mbSeconds.", + "x-example": 0, + "format": "int32" + }, + "executionsTotal": { + "type": "integer", + "description": "Total aggregated number of function executions.", + "x-example": 0, + "format": "int32" + }, + "executionsTimeTotal": { + "type": "integer", + "description": "Total aggregated sum of function executions compute time.", + "x-example": 0, + "format": "int32" + }, + "executionsMbSecondsTotal": { + "type": "integer", + "description": "Total aggregated sum of function executions mbSeconds.", "x-example": 0, "format": "int32" }, "deployments": { "type": "array", - "description": "Aggregated number of site deployments per period.", + "description": "Aggregated number of function deployments per period.", "items": { "type": "object", "$ref": "#\/definitions\/metric" @@ -40971,7 +41815,7 @@ }, "deploymentsStorage": { "type": "array", - "description": "Aggregated number of site deployments storage per period.", + "description": "Aggregated number of function deployments storage per period.", "items": { "type": "object", "$ref": "#\/definitions\/metric" @@ -40980,7 +41824,7 @@ }, "builds": { "type": "array", - "description": "Aggregated number of site builds per period.", + "description": "Aggregated number of function builds per period.", "items": { "type": "object", "$ref": "#\/definitions\/metric" @@ -40989,7 +41833,7 @@ }, "buildsStorage": { "type": "array", - "description": "Aggregated sum of site builds storage per period.", + "description": "Aggregated sum of function builds storage per period.", "items": { "type": "object", "$ref": "#\/definitions\/metric" @@ -40998,7 +41842,7 @@ }, "buildsTime": { "type": "array", - "description": "Aggregated sum of site builds compute time per period.", + "description": "Aggregated sum of function builds compute time per period.", "items": { "type": "object", "$ref": "#\/definitions\/metric" @@ -41007,7 +41851,97 @@ }, "buildsMbSeconds": { "type": "array", - "description": "Aggregated number of site builds mbSeconds per period.", + "description": "Aggregated number of function builds mbSeconds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "executions": { + "type": "array", + "description": "Aggregated number of function executions per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "executionsTime": { + "type": "array", + "description": "Aggregated number of function executions compute time per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "executionsMbSeconds": { + "type": "array", + "description": "Aggregated number of function mbSeconds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsSuccess": { + "type": "array", + "description": "Aggregated number of successful builds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsFailed": { + "type": "array", + "description": "Aggregated number of failed builds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "requestsTotal": { + "type": "integer", + "description": "Total aggregated number of requests.", + "x-example": 0, + "format": "int32" + }, + "requests": { + "type": "array", + "description": "Aggregated number of requests per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "inboundTotal": { + "type": "integer", + "description": "Total aggregated inbound bandwidth.", + "x-example": 0, + "format": "int32" + }, + "inbound": { + "type": "array", + "description": "Aggregated number of inbound bandwidth per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "outboundTotal": { + "type": "integer", + "description": "Total aggregated outbound bandwidth.", + "x-example": 0, + "format": "int32" + }, + "outbound": { + "type": "array", + "description": "Aggregated number of outbound bandwidth per period.", "items": { "type": "object", "$ref": "#\/definitions\/metric" @@ -41020,15 +41954,32 @@ "deploymentsTotal", "deploymentsStorageTotal", "buildsTotal", + "buildsSuccessTotal", + "buildsFailedTotal", "buildsStorageTotal", "buildsTimeTotal", + "buildsTimeAverage", "buildsMbSecondsTotal", + "executionsTotal", + "executionsTimeTotal", + "executionsMbSecondsTotal", "deployments", "deploymentsStorage", "builds", "buildsStorage", "buildsTime", - "buildsMbSeconds" + "buildsMbSeconds", + "executions", + "executionsTime", + "executionsMbSeconds", + "buildsSuccess", + "buildsFailed", + "requestsTotal", + "requests", + "inboundTotal", + "inbound", + "outboundTotal", + "outbound" ] }, "usageProject": { @@ -41531,11 +42482,21 @@ "description": "Console Variables", "type": "object", "properties": { - "_APP_DOMAIN_TARGET": { + "_APP_DOMAIN_TARGET_CNAME": { "type": "string", "description": "CNAME target for your Appwrite custom domains.", "x-example": "appwrite.io" }, + "_APP_DOMAIN_TARGET_A": { + "type": "string", + "description": "A target for your Appwrite custom domains.", + "x-example": "127.0.0.1" + }, + "_APP_DOMAIN_TARGET_AAAA": { + "type": "string", + "description": "AAAA target for your Appwrite custom domains.", + "x-example": "::1" + }, "_APP_STORAGE_LIMIT": { "type": "integer", "description": "Maximum file size allowed for file upload in bytes.", @@ -41590,7 +42551,9 @@ } }, "required": [ - "_APP_DOMAIN_TARGET", + "_APP_DOMAIN_TARGET_CNAME", + "_APP_DOMAIN_TARGET_A", + "_APP_DOMAIN_TARGET_AAAA", "_APP_STORAGE_LIMIT", "_APP_COMPUTE_SIZE_LIMIT", "_APP_USAGE_STATS", @@ -42133,6 +43096,11 @@ "user" ] }, + "resourceId": { + "type": "string", + "description": "Id of the resource to migrate.", + "x-example": "databaseId:collectionId" + }, "statusCounters": { "type": "object", "additionalProperties": true, @@ -42163,6 +43131,7 @@ "source", "destination", "resources", + "resourceId", "statusCounters", "resourceData", "errors" diff --git a/app/config/specs/swagger2-1.7.x-server.json b/app/config/specs/swagger2-1.7.x-server.json index c89973e2a3..28c56410fb 100644 --- a/app/config/specs/swagger2-1.7.x-server.json +++ b/app/config/specs/swagger2-1.7.x-server.json @@ -8271,7 +8271,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a list of all the project's functions. You can use the query params to filter your results.", "responses": { "200": { "description": "Functions List", @@ -8282,7 +8282,7 @@ }, "x-appwrite": { "method": "list", - "weight": 367, + "weight": 368, "cookies": false, "type": "", "deprecated": false, @@ -8343,7 +8343,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a new function. You can pass a list of [permissions](https:\/\/appwrite.io\/docs\/permissions) to allow different project users or team with access to execute the function using the client API.", "responses": { "201": { "description": "Function", @@ -8354,7 +8354,7 @@ }, "x-appwrite": { "method": "create", - "weight": 364, + "weight": 365, "cookies": false, "type": "", "deprecated": false, @@ -8594,7 +8594,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a list of all runtimes that are currently active on your instance.", "responses": { "200": { "description": "Runtimes List", @@ -8605,7 +8605,7 @@ }, "x-appwrite": { "method": "listRuntimes", - "weight": 369, + "weight": 370, "cookies": false, "type": "", "deprecated": false, @@ -8645,7 +8645,7 @@ "tags": [ "functions" ], - "description": "", + "description": "List allowed function specifications for this instance.", "responses": { "200": { "description": "Specifications List", @@ -8656,7 +8656,7 @@ }, "x-appwrite": { "method": "listSpecifications", - "weight": 370, + "weight": 371, "cookies": false, "type": "", "deprecated": false, @@ -8697,7 +8697,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a function by its unique ID.", "responses": { "200": { "description": "Function", @@ -8708,7 +8708,7 @@ }, "x-appwrite": { "method": "get", - "weight": 365, + "weight": 366, "cookies": false, "type": "", "deprecated": false, @@ -8756,7 +8756,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Update function by its unique ID.", "responses": { "200": { "description": "Function", @@ -8767,7 +8767,7 @@ }, "x-appwrite": { "method": "update", - "weight": 366, + "weight": 367, "cookies": false, "type": "", "deprecated": false, @@ -9004,7 +9004,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Delete a function by its unique ID.", "responses": { "204": { "description": "No content" @@ -9012,7 +9012,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 368, + "weight": 369, "cookies": false, "type": "", "deprecated": false, @@ -9062,7 +9062,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Update the function active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your function.", "responses": { "200": { "description": "Function", @@ -9073,7 +9073,7 @@ }, "x-appwrite": { "method": "updateFunctionDeployment", - "weight": 373, + "weight": 374, "cookies": false, "type": "", "deprecated": false, @@ -9141,7 +9141,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a list of all the function's code deployments. You can use the query params to filter your results.", "responses": { "200": { "description": "Deployments List", @@ -9152,7 +9152,7 @@ }, "x-appwrite": { "method": "listDeployments", - "weight": 374, + "weight": 375, "cookies": false, "type": "", "deprecated": false, @@ -9221,7 +9221,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a new function code deployment. Use this endpoint to upload a new version of your code function. To execute your newly uploaded code, you'll need to update the function's deployment to use your new deployment UID.\n\nThis endpoint accepts a tar.gz file compressed with your code. Make sure to include any dependencies your code has within the compressed file. You can learn more about code packaging in the [Appwrite Cloud Functions tutorial](https:\/\/appwrite.io\/docs\/functions).\n\nUse the \"command\" param to set the entrypoint used to execute your code.", "responses": { "202": { "description": "Deployment", @@ -9232,7 +9232,7 @@ }, "x-appwrite": { "method": "createDeployment", - "weight": 371, + "weight": 372, "cookies": false, "type": "upload", "deprecated": false, @@ -9313,7 +9313,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a new build for an existing function deployment. This endpoint allows you to rebuild a deployment with the updated function configuration, including its entrypoint and build commands if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", "responses": { "202": { "description": "Deployment", @@ -9324,7 +9324,7 @@ }, "x-appwrite": { "method": "createDuplicateDeployment", - "weight": 379, + "weight": 380, "cookies": false, "type": "", "deprecated": false, @@ -9398,7 +9398,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/server\/functions#listTemplates) to find the template details.", "responses": { "202": { "description": "Deployment", @@ -9409,7 +9409,7 @@ }, "x-appwrite": { "method": "createTemplateDeployment", - "weight": 376, + "weight": 377, "cookies": false, "type": "", "deprecated": false, @@ -9504,7 +9504,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a deployment when a function is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", "responses": { "202": { "description": "Deployment", @@ -9515,7 +9515,7 @@ }, "x-appwrite": { "method": "createVcsDeployment", - "weight": 377, + "weight": 378, "cookies": false, "type": "", "deprecated": false, @@ -9602,7 +9602,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a function deployment by its unique ID.", "responses": { "200": { "description": "Deployment", @@ -9613,7 +9613,7 @@ }, "x-appwrite": { "method": "getDeployment", - "weight": 372, + "weight": 373, "cookies": false, "type": "", "deprecated": false, @@ -9667,7 +9667,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Delete a code deployment by its unique ID.", "responses": { "204": { "description": "No content" @@ -9675,7 +9675,7 @@ }, "x-appwrite": { "method": "deleteDeployment", - "weight": 375, + "weight": 376, "cookies": false, "type": "", "deprecated": false, @@ -9733,7 +9733,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a function deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", "responses": { "200": { "description": "File", @@ -9744,7 +9744,7 @@ }, "x-appwrite": { "method": "getDeploymentDownload", - "weight": 378, + "weight": 379, "cookies": false, "type": "location", "deprecated": false, @@ -9819,7 +9819,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Cancel an ongoing function deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", "responses": { "200": { "description": "Deployment", @@ -9830,7 +9830,7 @@ }, "x-appwrite": { "method": "updateDeploymentStatus", - "weight": 380, + "weight": 381, "cookies": false, "type": "", "deprecated": false, @@ -9888,7 +9888,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a list of all the current user function execution logs. You can use the query params to filter your results.", "responses": { "200": { "description": "Executions List", @@ -9899,7 +9899,7 @@ }, "x-appwrite": { "method": "listExecutions", - "weight": 383, + "weight": 384, "cookies": false, "type": "", "deprecated": false, @@ -9963,7 +9963,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.", "responses": { "201": { "description": "Execution", @@ -9974,7 +9974,7 @@ }, "x-appwrite": { "method": "createExecution", - "weight": 381, + "weight": 382, "cookies": false, "type": "", "deprecated": false, @@ -10083,7 +10083,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a function execution log by its unique ID.", "responses": { "200": { "description": "Execution", @@ -10094,7 +10094,7 @@ }, "x-appwrite": { "method": "getExecution", - "weight": 382, + "weight": 383, "cookies": false, "type": "", "deprecated": false, @@ -10152,7 +10152,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Delete a function execution by its unique ID.", "responses": { "204": { "description": "No content" @@ -10160,7 +10160,7 @@ }, "x-appwrite": { "method": "deleteExecution", - "weight": 384, + "weight": 385, "cookies": false, "type": "", "deprecated": false, @@ -10218,7 +10218,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a list of all variables of a specific function.", "responses": { "200": { "description": "Variables List", @@ -10229,7 +10229,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 389, + "weight": 390, "cookies": false, "type": "", "deprecated": false, @@ -10277,7 +10277,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.", "responses": { "201": { "description": "Variable", @@ -10288,7 +10288,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 387, + "weight": 388, "cookies": false, "type": "", "deprecated": false, @@ -10369,7 +10369,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Get a variable by its unique ID.", "responses": { "200": { "description": "Variable", @@ -10380,7 +10380,7 @@ }, "x-appwrite": { "method": "getVariable", - "weight": 388, + "weight": 389, "cookies": false, "type": "", "deprecated": false, @@ -10436,7 +10436,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Update variable by its unique ID.", "responses": { "200": { "description": "Variable", @@ -10447,7 +10447,7 @@ }, "x-appwrite": { "method": "updateVariable", - "weight": 390, + "weight": 391, "cookies": false, "type": "", "deprecated": false, @@ -10531,7 +10531,7 @@ "tags": [ "functions" ], - "description": "", + "description": "Delete a variable by its unique ID.", "responses": { "204": { "description": "No content" @@ -10539,7 +10539,7 @@ }, "x-appwrite": { "method": "deleteVariable", - "weight": 391, + "weight": 392, "cookies": false, "type": "", "deprecated": false, @@ -12568,7 +12568,7 @@ }, "x-appwrite": { "method": "listMessages", - "weight": 356, + "weight": 357, "cookies": false, "type": "", "deprecated": false, @@ -12643,7 +12643,7 @@ }, "x-appwrite": { "method": "createEmail", - "weight": 353, + "weight": 354, "cookies": false, "type": "", "deprecated": false, @@ -12801,7 +12801,7 @@ }, "x-appwrite": { "method": "updateEmail", - "weight": 360, + "weight": 361, "cookies": false, "type": "", "deprecated": false, @@ -12956,7 +12956,7 @@ }, "x-appwrite": { "method": "createPush", - "weight": 355, + "weight": 356, "cookies": false, "type": "", "deprecated": false, @@ -13151,7 +13151,7 @@ }, "x-appwrite": { "method": "updatePush", - "weight": 362, + "weight": 363, "cookies": false, "type": "", "deprecated": false, @@ -13345,7 +13345,7 @@ }, "x-appwrite": { "method": "createSms", - "weight": 354, + "weight": 355, "cookies": false, "type": "", "deprecated": false, @@ -13463,7 +13463,7 @@ }, "x-appwrite": { "method": "updateSms", - "weight": 361, + "weight": 362, "cookies": false, "type": "", "deprecated": false, @@ -13579,7 +13579,7 @@ }, "x-appwrite": { "method": "getMessage", - "weight": 359, + "weight": 360, "cookies": false, "type": "", "deprecated": false, @@ -13634,7 +13634,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 363, + "weight": 364, "cookies": false, "type": "", "deprecated": false, @@ -13696,7 +13696,7 @@ }, "x-appwrite": { "method": "listMessageLogs", - "weight": 357, + "weight": 358, "cookies": false, "type": "", "deprecated": false, @@ -13770,7 +13770,7 @@ }, "x-appwrite": { "method": "listTargets", - "weight": 358, + "weight": 359, "cookies": false, "type": "", "deprecated": false, @@ -13844,7 +13844,7 @@ }, "x-appwrite": { "method": "listProviders", - "weight": 328, + "weight": 329, "cookies": false, "type": "", "deprecated": false, @@ -13919,7 +13919,7 @@ }, "x-appwrite": { "method": "createApnsProvider", - "weight": 327, + "weight": 328, "cookies": false, "type": "", "deprecated": false, @@ -14034,7 +14034,7 @@ }, "x-appwrite": { "method": "updateApnsProvider", - "weight": 340, + "weight": 341, "cookies": false, "type": "", "deprecated": false, @@ -14147,7 +14147,7 @@ }, "x-appwrite": { "method": "createFcmProvider", - "weight": 326, + "weight": 327, "cookies": false, "type": "", "deprecated": false, @@ -14238,7 +14238,7 @@ }, "x-appwrite": { "method": "updateFcmProvider", - "weight": 339, + "weight": 340, "cookies": false, "type": "", "deprecated": false, @@ -14327,7 +14327,7 @@ }, "x-appwrite": { "method": "createMailgunProvider", - "weight": 318, + "weight": 319, "cookies": false, "type": "", "deprecated": false, @@ -14454,7 +14454,7 @@ }, "x-appwrite": { "method": "updateMailgunProvider", - "weight": 331, + "weight": 332, "cookies": false, "type": "", "deprecated": false, @@ -14579,7 +14579,7 @@ }, "x-appwrite": { "method": "createMsg91Provider", - "weight": 321, + "weight": 322, "cookies": false, "type": "", "deprecated": false, @@ -14682,7 +14682,7 @@ }, "x-appwrite": { "method": "updateMsg91Provider", - "weight": 334, + "weight": 335, "cookies": false, "type": "", "deprecated": false, @@ -14783,7 +14783,7 @@ }, "x-appwrite": { "method": "createSendgridProvider", - "weight": 319, + "weight": 320, "cookies": false, "type": "", "deprecated": false, @@ -14898,7 +14898,7 @@ }, "x-appwrite": { "method": "updateSendgridProvider", - "weight": 332, + "weight": 333, "cookies": false, "type": "", "deprecated": false, @@ -15011,7 +15011,7 @@ }, "x-appwrite": { "method": "createSmtpProvider", - "weight": 320, + "weight": 321, "cookies": false, "type": "", "deprecated": false, @@ -15170,7 +15170,7 @@ }, "x-appwrite": { "method": "updateSmtpProvider", - "weight": 333, + "weight": 334, "cookies": false, "type": "", "deprecated": false, @@ -15326,7 +15326,7 @@ }, "x-appwrite": { "method": "createTelesignProvider", - "weight": 322, + "weight": 323, "cookies": false, "type": "", "deprecated": false, @@ -15429,7 +15429,7 @@ }, "x-appwrite": { "method": "updateTelesignProvider", - "weight": 335, + "weight": 336, "cookies": false, "type": "", "deprecated": false, @@ -15530,7 +15530,7 @@ }, "x-appwrite": { "method": "createTextmagicProvider", - "weight": 323, + "weight": 324, "cookies": false, "type": "", "deprecated": false, @@ -15633,7 +15633,7 @@ }, "x-appwrite": { "method": "updateTextmagicProvider", - "weight": 336, + "weight": 337, "cookies": false, "type": "", "deprecated": false, @@ -15734,7 +15734,7 @@ }, "x-appwrite": { "method": "createTwilioProvider", - "weight": 324, + "weight": 325, "cookies": false, "type": "", "deprecated": false, @@ -15837,7 +15837,7 @@ }, "x-appwrite": { "method": "updateTwilioProvider", - "weight": 337, + "weight": 338, "cookies": false, "type": "", "deprecated": false, @@ -15938,7 +15938,7 @@ }, "x-appwrite": { "method": "createVonageProvider", - "weight": 325, + "weight": 326, "cookies": false, "type": "", "deprecated": false, @@ -16041,7 +16041,7 @@ }, "x-appwrite": { "method": "updateVonageProvider", - "weight": 338, + "weight": 339, "cookies": false, "type": "", "deprecated": false, @@ -16142,7 +16142,7 @@ }, "x-appwrite": { "method": "getProvider", - "weight": 330, + "weight": 331, "cookies": false, "type": "", "deprecated": false, @@ -16197,7 +16197,7 @@ }, "x-appwrite": { "method": "deleteProvider", - "weight": 341, + "weight": 342, "cookies": false, "type": "", "deprecated": false, @@ -16259,7 +16259,7 @@ }, "x-appwrite": { "method": "listProviderLogs", - "weight": 329, + "weight": 330, "cookies": false, "type": "", "deprecated": false, @@ -16333,7 +16333,7 @@ }, "x-appwrite": { "method": "listSubscriberLogs", - "weight": 350, + "weight": 351, "cookies": false, "type": "", "deprecated": false, @@ -16407,7 +16407,7 @@ }, "x-appwrite": { "method": "listTopics", - "weight": 343, + "weight": 344, "cookies": false, "type": "", "deprecated": false, @@ -16480,7 +16480,7 @@ }, "x-appwrite": { "method": "createTopic", - "weight": 342, + "weight": 343, "cookies": false, "type": "", "deprecated": false, @@ -16570,7 +16570,7 @@ }, "x-appwrite": { "method": "getTopic", - "weight": 345, + "weight": 346, "cookies": false, "type": "", "deprecated": false, @@ -16630,7 +16630,7 @@ }, "x-appwrite": { "method": "updateTopic", - "weight": 346, + "weight": 347, "cookies": false, "type": "", "deprecated": false, @@ -16709,7 +16709,7 @@ }, "x-appwrite": { "method": "deleteTopic", - "weight": 347, + "weight": 348, "cookies": false, "type": "", "deprecated": false, @@ -16771,7 +16771,7 @@ }, "x-appwrite": { "method": "listTopicLogs", - "weight": 344, + "weight": 345, "cookies": false, "type": "", "deprecated": false, @@ -16845,7 +16845,7 @@ }, "x-appwrite": { "method": "listSubscribers", - "weight": 349, + "weight": 350, "cookies": false, "type": "", "deprecated": false, @@ -16926,7 +16926,7 @@ }, "x-appwrite": { "method": "createSubscriber", - "weight": 348, + "weight": 349, "cookies": false, "type": "", "deprecated": false, @@ -17017,7 +17017,7 @@ }, "x-appwrite": { "method": "getSubscriber", - "weight": 351, + "weight": 352, "cookies": false, "type": "", "deprecated": false, @@ -17080,7 +17080,7 @@ }, "x-appwrite": { "method": "deleteSubscriber", - "weight": 352, + "weight": 353, "cookies": false, "type": "", "deprecated": false, @@ -17143,7 +17143,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a list of all the project's sites. You can use the query params to filter your results.", "responses": { "200": { "description": "Sites List", @@ -17154,7 +17154,7 @@ }, "x-appwrite": { "method": "list", - "weight": 396, + "weight": 397, "cookies": false, "type": "", "deprecated": false, @@ -17215,7 +17215,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Create a new site.", "responses": { "201": { "description": "Site", @@ -17226,7 +17226,7 @@ }, "x-appwrite": { "method": "create", - "weight": 394, + "weight": 395, "cookies": false, "type": "", "deprecated": false, @@ -17308,7 +17308,7 @@ "timeout": { "type": "integer", "description": "Maximum request time in seconds.", - "default": 15, + "default": 30, "x-example": 1 }, "installCommand": { @@ -17481,7 +17481,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a list of all frameworks that are currently available on the server instance.", "responses": { "200": { "description": "Frameworks List", @@ -17492,7 +17492,7 @@ }, "x-appwrite": { "method": "listFrameworks", - "weight": 399, + "weight": 400, "cookies": false, "type": "", "deprecated": false, @@ -17532,7 +17532,7 @@ "tags": [ "sites" ], - "description": "", + "description": "List allowed site specifications for this instance.", "responses": { "200": { "description": "Specifications List", @@ -17543,7 +17543,7 @@ }, "x-appwrite": { "method": "listSpecifications", - "weight": 422, + "weight": 423, "cookies": false, "type": "", "deprecated": false, @@ -17584,7 +17584,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a site by its unique ID.", "responses": { "200": { "description": "Site", @@ -17595,7 +17595,7 @@ }, "x-appwrite": { "method": "get", - "weight": 395, + "weight": 396, "cookies": false, "type": "", "deprecated": false, @@ -17643,7 +17643,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Update site by its unique ID.", "responses": { "200": { "description": "Site", @@ -17654,7 +17654,7 @@ }, "x-appwrite": { "method": "update", - "weight": 397, + "weight": 398, "cookies": false, "type": "", "deprecated": false, @@ -17738,7 +17738,7 @@ "timeout": { "type": "integer", "description": "Maximum request time in seconds.", - "default": 15, + "default": 30, "x-example": 1 }, "installCommand": { @@ -17905,7 +17905,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Delete a site by its unique ID.", "responses": { "204": { "description": "No content" @@ -17913,7 +17913,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 398, + "weight": 399, "cookies": false, "type": "", "deprecated": false, @@ -17963,7 +17963,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Update the site active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your site.", "responses": { "200": { "description": "Site", @@ -17974,7 +17974,7 @@ }, "x-appwrite": { "method": "updateSiteDeployment", - "weight": 405, + "weight": 406, "cookies": false, "type": "", "deprecated": false, @@ -18042,7 +18042,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a list of all the site's code deployments. You can use the query params to filter your results.", "responses": { "200": { "description": "Deployments List", @@ -18053,7 +18053,7 @@ }, "x-appwrite": { "method": "listDeployments", - "weight": 404, + "weight": 405, "cookies": false, "type": "", "deprecated": false, @@ -18122,7 +18122,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the function's deployment to use your new deployment ID.", "responses": { "202": { "description": "Deployment", @@ -18133,7 +18133,7 @@ }, "x-appwrite": { "method": "createDeployment", - "weight": 400, + "weight": 401, "cookies": false, "type": "upload", "deprecated": false, @@ -18222,7 +18222,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Create a new build for an existing site deployment. This endpoint allows you to rebuild a deployment with the updated site configuration, including its commands and output directory if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", "responses": { "202": { "description": "Deployment", @@ -18233,7 +18233,7 @@ }, "x-appwrite": { "method": "createDuplicateDeployment", - "weight": 408, + "weight": 409, "cookies": false, "type": "", "deprecated": false, @@ -18290,7 +18290,7 @@ }, "\/sites\/{siteId}\/deployments\/template": { "post": { - "summary": "Create deployment", + "summary": "Create template deployment", "operationId": "sitesCreateTemplateDeployment", "consumes": [ "application\/json" @@ -18301,7 +18301,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/server\/sites#listTemplates) to find the template details.", "responses": { "202": { "description": "Deployment", @@ -18312,7 +18312,7 @@ }, "x-appwrite": { "method": "createTemplateDeployment", - "weight": 401, + "weight": 402, "cookies": false, "type": "", "deprecated": false, @@ -18407,7 +18407,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Create a deployment when a site is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", "responses": { "202": { "description": "Deployment", @@ -18418,7 +18418,7 @@ }, "x-appwrite": { "method": "createVcsDeployment", - "weight": 402, + "weight": 403, "cookies": false, "type": "", "deprecated": false, @@ -18506,7 +18506,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a site deployment by its unique ID.", "responses": { "200": { "description": "Deployment", @@ -18517,7 +18517,7 @@ }, "x-appwrite": { "method": "getDeployment", - "weight": 403, + "weight": 404, "cookies": false, "type": "", "deprecated": false, @@ -18571,7 +18571,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Delete a site deployment by its unique ID.", "responses": { "204": { "description": "No content" @@ -18579,7 +18579,7 @@ }, "x-appwrite": { "method": "deleteDeployment", - "weight": 406, + "weight": 407, "cookies": false, "type": "", "deprecated": false, @@ -18637,7 +18637,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a site deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", "responses": { "200": { "description": "File", @@ -18648,7 +18648,7 @@ }, "x-appwrite": { "method": "getDeploymentDownload", - "weight": 407, + "weight": 408, "cookies": false, "type": "location", "deprecated": false, @@ -18723,7 +18723,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Cancel an ongoing site deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", "responses": { "200": { "description": "Deployment", @@ -18734,7 +18734,7 @@ }, "x-appwrite": { "method": "updateDeploymentStatus", - "weight": 409, + "weight": 410, "cookies": false, "type": "", "deprecated": false, @@ -18792,7 +18792,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a list of all site logs. You can use the query params to filter your results.", "responses": { "200": { "description": "Executions List", @@ -18803,7 +18803,7 @@ }, "x-appwrite": { "method": "listLogs", - "weight": 411, + "weight": 412, "cookies": false, "type": "", "deprecated": false, @@ -18865,7 +18865,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a site request log by its unique ID.", "responses": { "200": { "description": "Execution", @@ -18876,7 +18876,7 @@ }, "x-appwrite": { "method": "getLog", - "weight": 410, + "weight": 411, "cookies": false, "type": "", "deprecated": false, @@ -18932,7 +18932,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Delete a site log by its unique ID.", "responses": { "204": { "description": "No content" @@ -18940,7 +18940,7 @@ }, "x-appwrite": { "method": "deleteLog", - "weight": 412, + "weight": 413, "cookies": false, "type": "", "deprecated": false, @@ -18998,7 +18998,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a list of all variables of a specific site.", "responses": { "200": { "description": "Variables List", @@ -19009,7 +19009,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 415, + "weight": 416, "cookies": false, "type": "", "deprecated": false, @@ -19057,7 +19057,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.", "responses": { "201": { "description": "Variable", @@ -19068,7 +19068,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 413, + "weight": 414, "cookies": false, "type": "", "deprecated": false, @@ -19149,7 +19149,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Get a variable by its unique ID.", "responses": { "200": { "description": "Variable", @@ -19160,7 +19160,7 @@ }, "x-appwrite": { "method": "getVariable", - "weight": 414, + "weight": 415, "cookies": false, "type": "", "deprecated": false, @@ -19216,7 +19216,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Update variable by its unique ID.", "responses": { "200": { "description": "Variable", @@ -19227,7 +19227,7 @@ }, "x-appwrite": { "method": "updateVariable", - "weight": 416, + "weight": 417, "cookies": false, "type": "", "deprecated": false, @@ -19311,7 +19311,7 @@ "tags": [ "sites" ], - "description": "", + "description": "Delete a variable by its unique ID.", "responses": { "204": { "description": "No content" @@ -19319,7 +19319,7 @@ }, "x-appwrite": { "method": "deleteVariable", - "weight": 417, + "weight": 418, "cookies": false, "type": "", "deprecated": false, @@ -21628,6 +21628,463 @@ ] } }, + "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "List tokens", + "operationId": "tokensList", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "tokens" + ], + "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Resource Tokens List", + "schema": { + "$ref": "#\/definitions\/resourceTokenList" + } + } + }, + "x-appwrite": { + "method": "list", + "weight": 432, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "tokens\/list.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterList all the tokens created for a specific file or bucket. You can use the query params to filter your results.", + "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": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "queries", + "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. You may filter on the following attributes: expire", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + } + ] + }, + "post": { + "summary": "Create file token", + "operationId": "tokensCreateFileToken", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "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.", + "responses": { + "201": { + "description": "ResourceToken", + "schema": { + "$ref": "#\/definitions\/resourceToken" + } + } + }, + "x-appwrite": { + "method": "createFileToken", + "weight": 429, + "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.", + "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": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "expire": { + "type": "string", + "description": "Token expiry date", + "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": [ + "application\/json" + ], + "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", + "weight": 430, + "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", + "weight": 433, + "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", + "weight": 434, + "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": [ + "application\/json" + ], + "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", + "weight": 431, + "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", @@ -25231,6 +25688,31 @@ "buckets" ] }, + "resourceTokenList": { + "description": "Resource Tokens List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of tokens documents that matched your query.", + "x-example": 5, + "format": "int32" + }, + "tokens": { + "type": "array", + "description": "List of tokens.", + "items": { + "type": "object", + "$ref": "#\/definitions\/resourceToken" + }, + "x-example": "" + } + }, + "required": [ + "total", + "tokens" + ] + }, "teamList": { "description": "Teams List", "type": "object", @@ -27822,6 +28304,50 @@ "antivirus" ] }, + "resourceToken": { + "description": "ResourceToken", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "x-example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "resourceId": { + "type": "string", + "description": "Resource ID.", + "x-example": "5e5ea5c168bb8:5e5ea5c168bb8" + }, + "resourceInternalId": { + "type": "string", + "description": "File ID.", + "x-example": "1:1" + }, + "resourceType": { + "type": "string", + "description": "Resource type.", + "x-example": "file" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "resourceId", + "resourceInternalId", + "resourceType", + "expire" + ] + }, "team": { "description": "Team", "type": "object", diff --git a/app/config/specs/swagger2-latest-client.json b/app/config/specs/swagger2-latest-client.json index b87c09b32f..0dd88e6d4f 100644 --- a/app/config/specs/swagger2-latest-client.json +++ b/app/config/specs/swagger2-latest-client.json @@ -7667,7 +7667,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", "responses": { "200": { "description": "Resource Tokens List", @@ -7678,7 +7678,7 @@ }, "x-appwrite": { "method": "list", - "weight": 396, + "weight": 432, "cookies": false, "type": "", "deprecated": false, @@ -7748,7 +7748,7 @@ "tags": [ "tokens" ], - "description": "", + "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.", "responses": { "201": { "description": "ResourceToken", @@ -7759,7 +7759,7 @@ }, "x-appwrite": { "method": "createFileToken", - "weight": 393, + "weight": 429, "cookies": false, "type": "", "deprecated": false, @@ -7844,7 +7844,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "Get a token by its unique ID.", "responses": { "200": { "description": "ResourceToken", @@ -7855,7 +7855,7 @@ }, "x-appwrite": { "method": "get", - "weight": 394, + "weight": 430, "cookies": false, "type": "", "deprecated": false, @@ -7905,7 +7905,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date or permissions.", "responses": { "200": { "description": "ResourceToken", @@ -7916,7 +7916,7 @@ }, "x-appwrite": { "method": "update", - "weight": 397, + "weight": 433, "cookies": false, "type": "", "deprecated": false, @@ -7989,7 +7989,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "Delete a token by its unique ID.", "responses": { "204": { "description": "No content" @@ -7997,7 +7997,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 398, + "weight": 434, "cookies": false, "type": "", "deprecated": false, @@ -8049,7 +8049,7 @@ "tags": [ "tokens" ], - "description": "", + "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", @@ -8060,7 +8060,7 @@ }, "x-appwrite": { "method": "getJWT", - "weight": 395, + "weight": 431, "cookies": false, "type": "", "deprecated": false, diff --git a/app/config/specs/swagger2-latest-console.json b/app/config/specs/swagger2-latest-console.json index 581c8408fe..94dad7013c 100644 --- a/app/config/specs/swagger2-latest-console.json +++ b/app/config/specs/swagger2-latest-console.json @@ -30115,7 +30115,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", "responses": { "200": { "description": "Resource Tokens List", @@ -30126,7 +30126,7 @@ }, "x-appwrite": { "method": "list", - "weight": 396, + "weight": 432, "cookies": false, "type": "", "deprecated": false, @@ -30196,7 +30196,7 @@ "tags": [ "tokens" ], - "description": "", + "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.", "responses": { "201": { "description": "ResourceToken", @@ -30207,7 +30207,7 @@ }, "x-appwrite": { "method": "createFileToken", - "weight": 393, + "weight": 429, "cookies": false, "type": "", "deprecated": false, @@ -30292,7 +30292,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "Get a token by its unique ID.", "responses": { "200": { "description": "ResourceToken", @@ -30303,7 +30303,7 @@ }, "x-appwrite": { "method": "get", - "weight": 394, + "weight": 430, "cookies": false, "type": "", "deprecated": false, @@ -30353,7 +30353,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date or permissions.", "responses": { "200": { "description": "ResourceToken", @@ -30364,7 +30364,7 @@ }, "x-appwrite": { "method": "update", - "weight": 397, + "weight": 433, "cookies": false, "type": "", "deprecated": false, @@ -30437,7 +30437,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "Delete a token by its unique ID.", "responses": { "204": { "description": "No content" @@ -30445,7 +30445,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 398, + "weight": 434, "cookies": false, "type": "", "deprecated": false, @@ -30497,7 +30497,7 @@ "tags": [ "tokens" ], - "description": "", + "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", @@ -30508,7 +30508,7 @@ }, "x-appwrite": { "method": "getJWT", - "weight": 395, + "weight": 431, "cookies": false, "type": "", "deprecated": false, @@ -41273,3 +41273,1943 @@ "x-example": 0, "format": "int32" }, + "buildsSuccessTotal": { + "type": "integer", + "description": "Total aggregated number of successful function builds.", + "x-example": 0, + "format": "int32" + }, + "buildsFailedTotal": { + "type": "integer", + "description": "Total aggregated number of failed function builds.", + "x-example": 0, + "format": "int32" + }, + "buildsStorageTotal": { + "type": "integer", + "description": "total aggregated sum of function builds storage.", + "x-example": 0, + "format": "int32" + }, + "buildsTimeTotal": { + "type": "integer", + "description": "Total aggregated sum of function builds compute time.", + "x-example": 0, + "format": "int32" + }, + "buildsTimeAverage": { + "type": "integer", + "description": "Average builds compute time.", + "x-example": 0, + "format": "int32" + }, + "buildsMbSecondsTotal": { + "type": "integer", + "description": "Total aggregated sum of function builds mbSeconds.", + "x-example": 0, + "format": "int32" + }, + "executionsTotal": { + "type": "integer", + "description": "Total aggregated number of function executions.", + "x-example": 0, + "format": "int32" + }, + "executionsTimeTotal": { + "type": "integer", + "description": "Total aggregated sum of function executions compute time.", + "x-example": 0, + "format": "int32" + }, + "executionsMbSecondsTotal": { + "type": "integer", + "description": "Total aggregated sum of function executions mbSeconds.", + "x-example": 0, + "format": "int32" + }, + "deployments": { + "type": "array", + "description": "Aggregated number of function deployments per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "deploymentsStorage": { + "type": "array", + "description": "Aggregated number of function deployments storage per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "builds": { + "type": "array", + "description": "Aggregated number of function builds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsStorage": { + "type": "array", + "description": "Aggregated sum of function builds storage per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsTime": { + "type": "array", + "description": "Aggregated sum of function builds compute time per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsMbSeconds": { + "type": "array", + "description": "Aggregated number of function builds mbSeconds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "executions": { + "type": "array", + "description": "Aggregated number of function executions per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "executionsTime": { + "type": "array", + "description": "Aggregated number of function executions compute time per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "executionsMbSeconds": { + "type": "array", + "description": "Aggregated number of function mbSeconds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsSuccess": { + "type": "array", + "description": "Aggregated number of successful builds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsFailed": { + "type": "array", + "description": "Aggregated number of failed builds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + } + }, + "required": [ + "range", + "deploymentsTotal", + "deploymentsStorageTotal", + "buildsTotal", + "buildsSuccessTotal", + "buildsFailedTotal", + "buildsStorageTotal", + "buildsTimeTotal", + "buildsTimeAverage", + "buildsMbSecondsTotal", + "executionsTotal", + "executionsTimeTotal", + "executionsMbSecondsTotal", + "deployments", + "deploymentsStorage", + "builds", + "buildsStorage", + "buildsTime", + "buildsMbSeconds", + "executions", + "executionsTime", + "executionsMbSeconds", + "buildsSuccess", + "buildsFailed" + ] + }, + "usageSites": { + "description": "UsageSites", + "type": "object", + "properties": { + "range": { + "type": "string", + "description": "Time range of the usage stats.", + "x-example": "30d" + }, + "deploymentsTotal": { + "type": "integer", + "description": "Total aggregated number of functions deployments.", + "x-example": 0, + "format": "int32" + }, + "deploymentsStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of functions deployment storage.", + "x-example": 0, + "format": "int32" + }, + "buildsTotal": { + "type": "integer", + "description": "Total aggregated number of functions build.", + "x-example": 0, + "format": "int32" + }, + "buildsStorageTotal": { + "type": "integer", + "description": "total aggregated sum of functions build storage.", + "x-example": 0, + "format": "int32" + }, + "buildsTimeTotal": { + "type": "integer", + "description": "Total aggregated sum of functions build compute time.", + "x-example": 0, + "format": "int32" + }, + "buildsMbSecondsTotal": { + "type": "integer", + "description": "Total aggregated sum of functions build mbSeconds.", + "x-example": 0, + "format": "int32" + }, + "executionsTotal": { + "type": "integer", + "description": "Total aggregated number of functions execution.", + "x-example": 0, + "format": "int32" + }, + "executionsTimeTotal": { + "type": "integer", + "description": "Total aggregated sum of functions execution compute time.", + "x-example": 0, + "format": "int32" + }, + "executionsMbSecondsTotal": { + "type": "integer", + "description": "Total aggregated sum of functions execution mbSeconds.", + "x-example": 0, + "format": "int32" + }, + "deployments": { + "type": "array", + "description": "Aggregated number of functions deployment per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "deploymentsStorage": { + "type": "array", + "description": "Aggregated number of functions deployment storage per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsSuccessTotal": { + "type": "integer", + "description": "Total aggregated number of successful function builds.", + "x-example": 0, + "format": "int32" + }, + "buildsFailedTotal": { + "type": "integer", + "description": "Total aggregated number of failed function builds.", + "x-example": 0, + "format": "int32" + }, + "builds": { + "type": "array", + "description": "Aggregated number of functions build per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsStorage": { + "type": "array", + "description": "Aggregated sum of functions build storage per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsTime": { + "type": "array", + "description": "Aggregated sum of functions build compute time per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsMbSeconds": { + "type": "array", + "description": "Aggregated sum of functions build mbSeconds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "executions": { + "type": "array", + "description": "Aggregated number of functions execution per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "executionsTime": { + "type": "array", + "description": "Aggregated number of functions execution compute time per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "executionsMbSeconds": { + "type": "array", + "description": "Aggregated number of functions mbSeconds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsSuccess": { + "type": "array", + "description": "Aggregated number of successful function builds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsFailed": { + "type": "array", + "description": "Aggregated number of failed function builds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "sitesTotal": { + "type": "integer", + "description": "Total aggregated number of sites.", + "x-example": 0, + "format": "int32" + }, + "sites": { + "type": "array", + "description": "Aggregated number of sites per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "requestsTotal": { + "type": "integer", + "description": "Total aggregated number of requests.", + "x-example": 0, + "format": "int32" + }, + "requests": { + "type": "array", + "description": "Aggregated number of requests per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "inboundTotal": { + "type": "integer", + "description": "Total aggregated inbound bandwidth.", + "x-example": 0, + "format": "int32" + }, + "inbound": { + "type": "array", + "description": "Aggregated number of inbound bandwidth per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "outboundTotal": { + "type": "integer", + "description": "Total aggregated outbound bandwidth.", + "x-example": 0, + "format": "int32" + }, + "outbound": { + "type": "array", + "description": "Aggregated number of outbound bandwidth per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + } + }, + "required": [ + "range", + "deploymentsTotal", + "deploymentsStorageTotal", + "buildsTotal", + "buildsStorageTotal", + "buildsTimeTotal", + "buildsMbSecondsTotal", + "executionsTotal", + "executionsTimeTotal", + "executionsMbSecondsTotal", + "deployments", + "deploymentsStorage", + "buildsSuccessTotal", + "buildsFailedTotal", + "builds", + "buildsStorage", + "buildsTime", + "buildsMbSeconds", + "executions", + "executionsTime", + "executionsMbSeconds", + "buildsSuccess", + "buildsFailed", + "sitesTotal", + "sites", + "requestsTotal", + "requests", + "inboundTotal", + "inbound", + "outboundTotal", + "outbound" + ] + }, + "usageSite": { + "description": "UsageSite", + "type": "object", + "properties": { + "range": { + "type": "string", + "description": "The time range of the usage stats.", + "x-example": "30d" + }, + "deploymentsTotal": { + "type": "integer", + "description": "Total aggregated number of function deployments.", + "x-example": 0, + "format": "int32" + }, + "deploymentsStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of function deployments storage.", + "x-example": 0, + "format": "int32" + }, + "buildsTotal": { + "type": "integer", + "description": "Total aggregated number of function builds.", + "x-example": 0, + "format": "int32" + }, + "buildsSuccessTotal": { + "type": "integer", + "description": "Total aggregated number of successful function builds.", + "x-example": 0, + "format": "int32" + }, + "buildsFailedTotal": { + "type": "integer", + "description": "Total aggregated number of failed function builds.", + "x-example": 0, + "format": "int32" + }, + "buildsStorageTotal": { + "type": "integer", + "description": "total aggregated sum of function builds storage.", + "x-example": 0, + "format": "int32" + }, + "buildsTimeTotal": { + "type": "integer", + "description": "Total aggregated sum of function builds compute time.", + "x-example": 0, + "format": "int32" + }, + "buildsTimeAverage": { + "type": "integer", + "description": "Average builds compute time.", + "x-example": 0, + "format": "int32" + }, + "buildsMbSecondsTotal": { + "type": "integer", + "description": "Total aggregated sum of function builds mbSeconds.", + "x-example": 0, + "format": "int32" + }, + "executionsTotal": { + "type": "integer", + "description": "Total aggregated number of function executions.", + "x-example": 0, + "format": "int32" + }, + "executionsTimeTotal": { + "type": "integer", + "description": "Total aggregated sum of function executions compute time.", + "x-example": 0, + "format": "int32" + }, + "executionsMbSecondsTotal": { + "type": "integer", + "description": "Total aggregated sum of function executions mbSeconds.", + "x-example": 0, + "format": "int32" + }, + "deployments": { + "type": "array", + "description": "Aggregated number of function deployments per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "deploymentsStorage": { + "type": "array", + "description": "Aggregated number of function deployments storage per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "builds": { + "type": "array", + "description": "Aggregated number of function builds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsStorage": { + "type": "array", + "description": "Aggregated sum of function builds storage per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsTime": { + "type": "array", + "description": "Aggregated sum of function builds compute time per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsMbSeconds": { + "type": "array", + "description": "Aggregated number of function builds mbSeconds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "executions": { + "type": "array", + "description": "Aggregated number of function executions per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "executionsTime": { + "type": "array", + "description": "Aggregated number of function executions compute time per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "executionsMbSeconds": { + "type": "array", + "description": "Aggregated number of function mbSeconds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsSuccess": { + "type": "array", + "description": "Aggregated number of successful builds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "buildsFailed": { + "type": "array", + "description": "Aggregated number of failed builds per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "requestsTotal": { + "type": "integer", + "description": "Total aggregated number of requests.", + "x-example": 0, + "format": "int32" + }, + "requests": { + "type": "array", + "description": "Aggregated number of requests per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "inboundTotal": { + "type": "integer", + "description": "Total aggregated inbound bandwidth.", + "x-example": 0, + "format": "int32" + }, + "inbound": { + "type": "array", + "description": "Aggregated number of inbound bandwidth per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "outboundTotal": { + "type": "integer", + "description": "Total aggregated outbound bandwidth.", + "x-example": 0, + "format": "int32" + }, + "outbound": { + "type": "array", + "description": "Aggregated number of outbound bandwidth per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + } + }, + "required": [ + "range", + "deploymentsTotal", + "deploymentsStorageTotal", + "buildsTotal", + "buildsSuccessTotal", + "buildsFailedTotal", + "buildsStorageTotal", + "buildsTimeTotal", + "buildsTimeAverage", + "buildsMbSecondsTotal", + "executionsTotal", + "executionsTimeTotal", + "executionsMbSecondsTotal", + "deployments", + "deploymentsStorage", + "builds", + "buildsStorage", + "buildsTime", + "buildsMbSeconds", + "executions", + "executionsTime", + "executionsMbSeconds", + "buildsSuccess", + "buildsFailed", + "requestsTotal", + "requests", + "inboundTotal", + "inbound", + "outboundTotal", + "outbound" + ] + }, + "usageProject": { + "description": "UsageProject", + "type": "object", + "properties": { + "executionsTotal": { + "type": "integer", + "description": "Total aggregated number of function executions.", + "x-example": 0, + "format": "int32" + }, + "documentsTotal": { + "type": "integer", + "description": "Total aggregated number of documents.", + "x-example": 0, + "format": "int32" + }, + "databasesTotal": { + "type": "integer", + "description": "Total aggregated number of databases.", + "x-example": 0, + "format": "int32" + }, + "databasesStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of databases storage size (in bytes).", + "x-example": 0, + "format": "int32" + }, + "usersTotal": { + "type": "integer", + "description": "Total aggregated number of users.", + "x-example": 0, + "format": "int32" + }, + "filesStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of files storage size (in bytes).", + "x-example": 0, + "format": "int32" + }, + "functionsStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of functions storage size (in bytes).", + "x-example": 0, + "format": "int32" + }, + "buildsStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of builds storage size (in bytes).", + "x-example": 0, + "format": "int32" + }, + "deploymentsStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of deployments storage size (in bytes).", + "x-example": 0, + "format": "int32" + }, + "bucketsTotal": { + "type": "integer", + "description": "Total aggregated number of buckets.", + "x-example": 0, + "format": "int32" + }, + "executionsMbSecondsTotal": { + "type": "integer", + "description": "Total aggregated number of function executions mbSeconds.", + "x-example": 0, + "format": "int32" + }, + "buildsMbSecondsTotal": { + "type": "integer", + "description": "Total aggregated number of function builds mbSeconds.", + "x-example": 0, + "format": "int32" + }, + "databasesReadsTotal": { + "type": "integer", + "description": "Total number of databases reads.", + "x-example": 0, + "format": "int32" + }, + "databasesWritesTotal": { + "type": "integer", + "description": "Total number of databases writes.", + "x-example": 0, + "format": "int32" + }, + "requests": { + "type": "array", + "description": "Aggregated number of requests per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "network": { + "type": "array", + "description": "Aggregated number of consumed bandwidth per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "users": { + "type": "array", + "description": "Aggregated number of users per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "executions": { + "type": "array", + "description": "Aggregated number of executions per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "executionsBreakdown": { + "type": "array", + "description": "Aggregated breakdown in totals of executions by functions.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metricBreakdown" + }, + "x-example": [] + }, + "bucketsBreakdown": { + "type": "array", + "description": "Aggregated breakdown in totals of usage by buckets.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metricBreakdown" + }, + "x-example": [] + }, + "databasesStorageBreakdown": { + "type": "array", + "description": "An array of the aggregated breakdown of storage usage by databases.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metricBreakdown" + }, + "x-example": [] + }, + "executionsMbSecondsBreakdown": { + "type": "array", + "description": "Aggregated breakdown in totals of execution mbSeconds by functions.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metricBreakdown" + }, + "x-example": [] + }, + "buildsMbSecondsBreakdown": { + "type": "array", + "description": "Aggregated breakdown in totals of build mbSeconds by functions.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metricBreakdown" + }, + "x-example": [] + }, + "functionsStorageBreakdown": { + "type": "array", + "description": "Aggregated breakdown in totals of functions storage size (in bytes).", + "items": { + "type": "object", + "$ref": "#\/definitions\/metricBreakdown" + }, + "x-example": [] + }, + "authPhoneTotal": { + "type": "integer", + "description": "Total aggregated number of phone auth.", + "x-example": 0, + "format": "int32" + }, + "authPhoneEstimate": { + "type": "number", + "description": "Estimated total aggregated cost of phone auth.", + "x-example": 0, + "format": "double" + }, + "authPhoneCountryBreakdown": { + "type": "array", + "description": "Aggregated breakdown in totals of phone auth by country.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metricBreakdown" + }, + "x-example": [] + }, + "databasesReads": { + "type": "array", + "description": "An array of aggregated number of database reads.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "databasesWrites": { + "type": "array", + "description": "An array of aggregated number of database writes.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "imageTransformations": { + "type": "array", + "description": "An array of aggregated number of image transformations.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "imageTransformationsTotal": { + "type": "integer", + "description": "Total aggregated number of image transformations.", + "x-example": 0, + "format": "int32" + } + }, + "required": [ + "executionsTotal", + "documentsTotal", + "databasesTotal", + "databasesStorageTotal", + "usersTotal", + "filesStorageTotal", + "functionsStorageTotal", + "buildsStorageTotal", + "deploymentsStorageTotal", + "bucketsTotal", + "executionsMbSecondsTotal", + "buildsMbSecondsTotal", + "databasesReadsTotal", + "databasesWritesTotal", + "requests", + "network", + "users", + "executions", + "executionsBreakdown", + "bucketsBreakdown", + "databasesStorageBreakdown", + "executionsMbSecondsBreakdown", + "buildsMbSecondsBreakdown", + "functionsStorageBreakdown", + "authPhoneTotal", + "authPhoneEstimate", + "authPhoneCountryBreakdown", + "databasesReads", + "databasesWrites", + "imageTransformations", + "imageTransformationsTotal" + ] + }, + "headers": { + "description": "Headers", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Header name.", + "x-example": "Content-Type" + }, + "value": { + "type": "string", + "description": "Header value.", + "x-example": "application\/json" + } + }, + "required": [ + "name", + "value" + ] + }, + "specification": { + "description": "Specification", + "type": "object", + "properties": { + "memory": { + "type": "integer", + "description": "Memory size in MB.", + "x-example": 512, + "format": "int32" + }, + "cpus": { + "type": "number", + "description": "Number of CPUs.", + "x-example": 1, + "format": "double" + }, + "enabled": { + "type": "boolean", + "description": "Is size enabled.", + "x-example": true + }, + "slug": { + "type": "string", + "description": "Size slug.", + "x-example": "s-1vcpu-512mb" + } + }, + "required": [ + "memory", + "cpus", + "enabled", + "slug" + ] + }, + "proxyRule": { + "description": "Rule", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "x-example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Rule creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Rule update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "domain": { + "type": "string", + "description": "Domain name.", + "x-example": "appwrite.company.com" + }, + "type": { + "type": "string", + "description": "Action definition for the rule. Possible values are \"api\", \"deployment\", or \"redirect\"", + "x-example": "deployment" + }, + "trigger": { + "type": "string", + "description": "Defines how the rule was created. Possible values are \"manual\" or \"deployment\"", + "x-example": "manual" + }, + "redirectUrl": { + "type": "string", + "description": "URL to redirect to. Used if type is \"redirect\"", + "x-example": "https:\/\/appwrite.io\/docs" + }, + "redirectStatusCode": { + "type": "integer", + "description": "Status code to apply during redirect. Used if type is \"redirect\"", + "x-example": 301, + "format": "int32" + }, + "deploymentId": { + "type": "string", + "description": "ID of deployment. Used if type is \"deployment\"", + "x-example": "n3u9feiwmf" + }, + "deploymentResourceType": { + "type": "string", + "description": "Type of deployment. Possible values are \"function\", \"site\". Used if rule's type is \"deployment\".", + "x-example": "function" + }, + "deploymentResourceId": { + "type": "string", + "description": "ID deployment's resource. Used if type is \"deployment\"", + "x-example": "n3u9feiwmf" + }, + "deploymentVcsProviderBranch": { + "type": "string", + "description": "Name of Git branch that updates rule. Used if type is \"deployment\"", + "x-example": "function" + }, + "status": { + "type": "string", + "description": "Domain verification status. Possible values are \"created\", \"verifying\", \"verified\" and \"unverified\"", + "x-example": "verified" + }, + "logs": { + "type": "string", + "description": "Certificate generation logs. This will return an empty string if generation did not run, or succeeded.", + "x-example": "HTTP challegne failed." + }, + "renewAt": { + "type": "string", + "description": "Certificate auto-renewal date in ISO 8601 format.", + "x-example": "datetime" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "domain", + "type", + "trigger", + "redirectUrl", + "redirectStatusCode", + "deploymentId", + "deploymentResourceType", + "deploymentResourceId", + "deploymentVcsProviderBranch", + "status", + "logs", + "renewAt" + ] + }, + "smsTemplate": { + "description": "SmsTemplate", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Template type", + "x-example": "verification" + }, + "locale": { + "type": "string", + "description": "Template locale", + "x-example": "en_us" + }, + "message": { + "type": "string", + "description": "Template message", + "x-example": "Click on the link to verify your account." + } + }, + "required": [ + "type", + "locale", + "message" + ] + }, + "emailTemplate": { + "description": "EmailTemplate", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Template type", + "x-example": "verification" + }, + "locale": { + "type": "string", + "description": "Template locale", + "x-example": "en_us" + }, + "message": { + "type": "string", + "description": "Template message", + "x-example": "Click on the link to verify your account." + }, + "senderName": { + "type": "string", + "description": "Name of the sender", + "x-example": "My User" + }, + "senderEmail": { + "type": "string", + "description": "Email of the sender", + "x-example": "mail@appwrite.io" + }, + "replyTo": { + "type": "string", + "description": "Reply to email address", + "x-example": "emails@appwrite.io" + }, + "subject": { + "type": "string", + "description": "Email subject", + "x-example": "Please verify your email address" + } + }, + "required": [ + "type", + "locale", + "message", + "senderName", + "senderEmail", + "replyTo", + "subject" + ] + }, + "consoleVariables": { + "description": "Console Variables", + "type": "object", + "properties": { + "_APP_DOMAIN_TARGET_CNAME": { + "type": "string", + "description": "CNAME target for your Appwrite custom domains.", + "x-example": "appwrite.io" + }, + "_APP_DOMAIN_TARGET_A": { + "type": "string", + "description": "A target for your Appwrite custom domains.", + "x-example": "127.0.0.1" + }, + "_APP_DOMAIN_TARGET_AAAA": { + "type": "string", + "description": "AAAA target for your Appwrite custom domains.", + "x-example": "::1" + }, + "_APP_STORAGE_LIMIT": { + "type": "integer", + "description": "Maximum file size allowed for file upload in bytes.", + "x-example": "30000000", + "format": "int32" + }, + "_APP_COMPUTE_SIZE_LIMIT": { + "type": "integer", + "description": "Maximum file size allowed for deployment in bytes.", + "x-example": "30000000", + "format": "int32" + }, + "_APP_USAGE_STATS": { + "type": "string", + "description": "Defines if usage stats are enabled. This value is set to 'enabled' by default, to disable the usage stats set the value to 'disabled'.", + "x-example": "enabled" + }, + "_APP_VCS_ENABLED": { + "type": "boolean", + "description": "Defines if VCS (Version Control System) is enabled.", + "x-example": true + }, + "_APP_DOMAIN_ENABLED": { + "type": "boolean", + "description": "Defines if main domain is configured. If so, custom domains can be created.", + "x-example": true + }, + "_APP_ASSISTANT_ENABLED": { + "type": "boolean", + "description": "Defines if AI assistant is enabled.", + "x-example": true + }, + "_APP_DOMAIN_SITES": { + "type": "string", + "description": "A domain to use for site URLs.", + "x-example": "sites.localhost" + }, + "_APP_DOMAIN_FUNCTIONS": { + "type": "string", + "description": "A domain to use for function URLs.", + "x-example": "functions.localhost" + }, + "_APP_OPTIONS_FORCE_HTTPS": { + "type": "string", + "description": "Defines if HTTPS is enforced for all requests.", + "x-example": "enabled" + }, + "_APP_DOMAINS_NAMESERVERS": { + "type": "string", + "description": "Comma-separated list of nameservers.", + "x-example": "ns1.example.com,ns2.example.com" + } + }, + "required": [ + "_APP_DOMAIN_TARGET_CNAME", + "_APP_DOMAIN_TARGET_A", + "_APP_DOMAIN_TARGET_AAAA", + "_APP_STORAGE_LIMIT", + "_APP_COMPUTE_SIZE_LIMIT", + "_APP_USAGE_STATS", + "_APP_VCS_ENABLED", + "_APP_DOMAIN_ENABLED", + "_APP_ASSISTANT_ENABLED", + "_APP_DOMAIN_SITES", + "_APP_DOMAIN_FUNCTIONS", + "_APP_OPTIONS_FORCE_HTTPS", + "_APP_DOMAINS_NAMESERVERS" + ] + }, + "mfaChallenge": { + "description": "MFA Challenge", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "x-example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "x-example": "5e5ea5c168bb8" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "userId", + "expire" + ] + }, + "mfaRecoveryCodes": { + "description": "MFA Recovery Codes", + "type": "object", + "properties": { + "recoveryCodes": { + "type": "array", + "description": "Recovery codes.", + "items": { + "type": "string" + }, + "x-example": [ + "a3kf0-s0cl2", + "s0co1-as98s" + ] + } + }, + "required": [ + "recoveryCodes" + ] + }, + "mfaType": { + "description": "MFAType", + "type": "object", + "properties": { + "secret": { + "type": "string", + "description": "Secret token used for TOTP factor.", + "x-example": true + }, + "uri": { + "type": "string", + "description": "URI for authenticator apps.", + "x-example": true + } + }, + "required": [ + "secret", + "uri" + ] + }, + "mfaFactors": { + "description": "MFAFactors", + "type": "object", + "properties": { + "totp": { + "type": "boolean", + "description": "Can TOTP be used for MFA challenge for this account.", + "x-example": true + }, + "phone": { + "type": "boolean", + "description": "Can phone (SMS) be used for MFA challenge for this account.", + "x-example": true + }, + "email": { + "type": "boolean", + "description": "Can email be used for MFA challenge for this account.", + "x-example": true + }, + "recoveryCode": { + "type": "boolean", + "description": "Can recovery code be used for MFA challenge for this account.", + "x-example": true + } + }, + "required": [ + "totp", + "phone", + "email", + "recoveryCode" + ] + }, + "provider": { + "description": "Provider", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Provider ID.", + "x-example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Provider creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Provider update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "The name for the provider instance.", + "x-example": "Mailgun" + }, + "provider": { + "type": "string", + "description": "The name of the provider service.", + "x-example": "mailgun" + }, + "enabled": { + "type": "boolean", + "description": "Is provider enabled?", + "x-example": true + }, + "type": { + "type": "string", + "description": "Type of provider.", + "x-example": "sms" + }, + "credentials": { + "type": "object", + "additionalProperties": true, + "description": "Provider credentials.", + "x-example": { + "key": "123456789" + } + }, + "options": { + "type": "object", + "additionalProperties": true, + "description": "Provider options.", + "x-example": { + "from": "sender-email@mydomain" + } + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "provider", + "enabled", + "type", + "credentials" + ] + }, + "message": { + "description": "Message", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Message ID.", + "x-example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Message creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Message update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "providerType": { + "type": "string", + "description": "Message provider type.", + "x-example": "email" + }, + "topics": { + "type": "array", + "description": "Topic IDs set as recipients.", + "items": { + "type": "string" + }, + "x-example": [ + "5e5ea5c16897e" + ] + }, + "users": { + "type": "array", + "description": "User IDs set as recipients.", + "items": { + "type": "string" + }, + "x-example": [ + "5e5ea5c16897e" + ] + }, + "targets": { + "type": "array", + "description": "Target IDs set as recipients.", + "items": { + "type": "string" + }, + "x-example": [ + "5e5ea5c16897e" + ] + }, + "scheduledAt": { + "type": "string", + "description": "The scheduled time for message.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "x-nullable": true + }, + "deliveredAt": { + "type": "string", + "description": "The time when the message was delivered.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "x-nullable": true + }, + "deliveryErrors": { + "type": "array", + "description": "Delivery errors if any.", + "items": { + "type": "string" + }, + "x-example": [ + "Failed to send message to target 5e5ea5c16897e: Credentials not valid." + ], + "x-nullable": true + }, + "deliveredTotal": { + "type": "integer", + "description": "Number of recipients the message was delivered to.", + "x-example": 1, + "format": "int32" + }, + "data": { + "type": "object", + "additionalProperties": true, + "description": "Data of the message.", + "x-example": { + "subject": "Welcome to Appwrite", + "content": "Hi there, welcome to Appwrite family." + } + }, + "status": { + "type": "string", + "description": "Status of delivery.", + "x-example": "Message status can be one of the following: draft, processing, scheduled, sent, or failed." + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "providerType", + "topics", + "users", + "targets", + "deliveredTotal", + "data", + "status" + ] + }, + "topic": { + "description": "Topic", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Topic ID.", + "x-example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Topic creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Topic update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "The name of the topic.", + "x-example": "events" + }, + "emailTotal": { + "type": "integer", + "description": "Total count of email subscribers subscribed to the topic.", + "x-example": 100, + "format": "int32" + }, + "smsTotal": { + "type": "integer", + "description": "Total count of SMS subscribers subscribed to the topic.", + "x-example": 100, + "format": "int32" + }, + "pushTotal": { + "type": "integer", + "description": "Total count of push subscribers subscribed to the topic.", + "x-example": 100, + "format": "int32" + }, + "subscribe": { + "type": "array", + "description": "Subscribe permissions.", + "items": { + "type": "string" + }, + "x-example": "users" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "emailTotal", + "smsTotal", + "pushTotal", + "subscribe" + ] + }, + "subscriber": { + "description": "Subscriber", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Subscriber ID.", + "x-example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Subscriber creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Subscriber update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "targetId": { + "type": "string", + "description": "Target ID.", + "x-example": "259125845563242502" + }, + "target": { + "type": "object", + "description": "Target.", + "x-example": { + "$id": "259125845563242502", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "providerType": "email", + "providerId": "259125845563242502", + "name": "ageon-app-email", + "identifier": "random-mail@email.org", + "userId": "5e5ea5c16897e" + }, + "items": { + "type": "object", + "$ref": "#\/definitions\/target" + } + }, + "userId": { + "type": "string", + "description": "Topic ID.", + "x-example": "5e5ea5c16897e" + }, + "userName": { + "type": "string", + "description": "User Name.", + "x-example": "Aegon Targaryen" + }, + "topicId": { + "type": "string", + "description": "Topic ID.", + "x-example": "259125845563242502" + }, + "providerType": { + "type": "string", + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "x-example": "email" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "targetId", + "target", + "userId", + "userName", + "topicId", + "providerType" + ] + }, + "target": { + "description": "Target", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Target ID.", + "x-example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Target creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Target update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Target Name.", + "x-example": "Apple iPhone 12" + }, + "userId": { + "type": "string", + "description": "User ID.", + "x-example": "259125845563242502" + }, + "providerId": { + "type": "string", + "description": "Provider ID.", + "x-example": "259125845563242502", + "x-nullable": true + }, + "providerType": { + "type": "string", + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "x-example": "email" + }, + "identifier": { + "type": "string", + "description": "The target identifier.", + "x-example": "token" + }, + "expired": { + "type": "boolean", + "description": "Is the target expired.", + "x-example": false + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "userId", + "providerType", + "identifier", + "expired" + ] + }, + "migration": { + "description": "Migration", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Migration ID.", + "x-example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Migration creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Variable creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "string", + "description": "Migration status ( pending, processing, failed, completed ) ", + "x-example": "pending" + }, + "stage": { + "type": "string", + "description": "Migration stage ( init, processing, source-check, destination-check, migrating, finished )", + "x-example": "init" + }, + "source": { + "type": "string", + "description": "A string containing the type of source of the migration.", + "x-example": "Appwrite" + }, + "destination": { + "type": "string", + "description": "A string containing the type of destination of the migration.", + "x-example": "Appwrite" + }, + "resources": { + "type": "array", + "description": "Resources to migrate.", + "items": { + "type": "string" + }, + "x-example": [ + "user" + ] + }, + "resourceId": { + "type": "string", + "description": "Id of the resource to migrate.", + "x-example": "databaseId:collectionId" + }, + "statusCounters": { + "type": "object", + "additionalProperties": true, + "description": "A group of counters that represent the total progress of the migration.", + "x-example": "{\"Database\": {\"PENDING\": 0, \"SUCCESS\": 1, \"ERROR\": 0, \"SKIP\": 0, \"PROCESSING\": 0, \"WARNING\": 0}}" + }, + "resourceData": { + "type": "object", + "additionalProperties": true, + "description": "An array of objects containing the report data of the resources that were migrated.", + "x-example": "[{\"resource\":\"Database\",\"id\":\"public\",\"status\":\"SUCCESS\",\"message\":\"\"}]" + }, + "errors": { + "type": "array", + "description": "All errors that occurred during the migration process.", + "items": { + "type": "string" + }, + "x-example": [] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "status", + "stage", + "source", + "destination", + "resources", + "resourceId", + "statusCounters", + "resourceData", + "errors" + ] + }, + "migrationReport": { + "description": "Migration Report", + "type": "object", + "properties": { + "user": { + "type": "integer", + "description": "Number of users to be migrated.", + "x-example": 20, + "format": "int32" + }, + "team": { + "type": "integer", + "description": "Number of teams to be migrated.", + "x-example": 20, + "format": "int32" + }, + "database": { + "type": "integer", + "description": "Number of databases to be migrated.", + "x-example": 20, + "format": "int32" + }, + "document": { + "type": "integer", + "description": "Number of documents to be migrated.", + "x-example": 20, + "format": "int32" + }, + "file": { + "type": "integer", + "description": "Number of files to be migrated.", + "x-example": 20, + "format": "int32" + }, + "bucket": { + "type": "integer", + "description": "Number of buckets to be migrated.", + "x-example": 20, + "format": "int32" + }, + "function": { + "type": "integer", + "description": "Number of functions to be migrated.", + "x-example": 20, + "format": "int32" + }, + "size": { + "type": "integer", + "description": "Size of files to be migrated in mb.", + "x-example": 30000, + "format": "int32" + }, + "version": { + "type": "string", + "description": "Version of the Appwrite instance to be migrated.", + "x-example": "1.4.0" + } + }, + "required": [ + "user", + "team", + "database", + "document", + "file", + "bucket", + "function", + "size", + "version" + ] + } + }, + "externalDocs": { + "description": "Full API docs, specs and tutorials", + "url": "https:\/\/appwrite.io\/docs" + } +} \ No newline at end of file diff --git a/app/config/specs/swagger2-latest-server.json b/app/config/specs/swagger2-latest-server.json index fcf412c7a1..28c56410fb 100644 --- a/app/config/specs/swagger2-latest-server.json +++ b/app/config/specs/swagger2-latest-server.json @@ -21641,7 +21641,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", "responses": { "200": { "description": "Resource Tokens List", @@ -21652,7 +21652,7 @@ }, "x-appwrite": { "method": "list", - "weight": 396, + "weight": 432, "cookies": false, "type": "", "deprecated": false, @@ -21724,7 +21724,7 @@ "tags": [ "tokens" ], - "description": "", + "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.", "responses": { "201": { "description": "ResourceToken", @@ -21735,7 +21735,7 @@ }, "x-appwrite": { "method": "createFileToken", - "weight": 393, + "weight": 429, "cookies": false, "type": "", "deprecated": false, @@ -21822,7 +21822,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "Get a token by its unique ID.", "responses": { "200": { "description": "ResourceToken", @@ -21833,7 +21833,7 @@ }, "x-appwrite": { "method": "get", - "weight": 394, + "weight": 430, "cookies": false, "type": "", "deprecated": false, @@ -21885,7 +21885,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date or permissions.", "responses": { "200": { "description": "ResourceToken", @@ -21896,7 +21896,7 @@ }, "x-appwrite": { "method": "update", - "weight": 397, + "weight": 433, "cookies": false, "type": "", "deprecated": false, @@ -21971,7 +21971,7 @@ "tags": [ "tokens" ], - "description": "", + "description": "Delete a token by its unique ID.", "responses": { "204": { "description": "No content" @@ -21979,7 +21979,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 398, + "weight": 434, "cookies": false, "type": "", "deprecated": false, @@ -22033,7 +22033,7 @@ "tags": [ "tokens" ], - "description": "", + "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", @@ -22044,7 +22044,7 @@ }, "x-appwrite": { "method": "getJWT", - "weight": 395, + "weight": 431, "cookies": false, "type": "", "deprecated": false, diff --git a/app/controllers/general.php b/app/controllers/general.php index 76835d3769..3c332c593c 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -1543,14 +1543,12 @@ foreach (Config::getParam('services', []) as $service) { } } -// Modules -$platform = new Appwrite(); -$platform->init(Service::TYPE_HTTP); - // Check for any errors found while we were initialising the SDK Methods. if (!empty(Method::getErrors())) { throw new \Exception('Errors found during SDK initialization:' . PHP_EOL . implode(PHP_EOL, Method::getErrors())); } +// Modules + $platform = new Appwrite(); $platform->init(Service::TYPE_HTTP);