From d0cdd2108be8f87475b76d46b0d1349c7572342f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 7 Sep 2026 10:10:49 +0000 Subject: [PATCH] chore: add the canonical OpenAPI document to latest specs --- specs/latest/open-api3-latest-client.json | 55 +- specs/latest/open-api3-latest-console.json | 224 +- specs/latest/open-api3-latest-server.json | 221 +- specs/latest/open-api3-latest.json | 150167 ++++++++++++++++++ 4 files changed, 150492 insertions(+), 175 deletions(-) create mode 100644 specs/latest/open-api3-latest.json diff --git a/specs/latest/open-api3-latest-client.json b/specs/latest/open-api3-latest-client.json index 210fbd529..e00774b5d 100644 --- a/specs/latest/open-api3-latest-client.json +++ b/specs/latest/open-api3-latest-client.json @@ -28291,6 +28291,9 @@ "description": "Your project ID", "in": "header", "x-appwrite": { + "platforms": [ + "client" + ], "demo": "" } }, @@ -28302,6 +28305,9 @@ "x-appwrite": { "location": "path", "param": "project_id", + "platforms": [ + "client" + ], "demo": "" } }, @@ -28311,6 +28317,9 @@ "description": "Your secret JSON Web Token", "in": "header", "x-appwrite": { + "platforms": [ + "client" + ], "demo": "" } }, @@ -28318,7 +28327,12 @@ "type": "http", "scheme": "bearer", "bearerFormat": "JWT", - "description": "The OAuth access token to authenticate with" + "description": "The OAuth access token to authenticate with", + "x-appwrite": { + "platforms": [ + "client" + ] + } }, "Locale": { "type": "apiKey", @@ -28326,6 +28340,9 @@ "description": "", "in": "header", "x-appwrite": { + "platforms": [ + "client" + ], "demo": "en" } }, @@ -28333,19 +28350,34 @@ "type": "apiKey", "name": "X-Appwrite-Session", "description": "The user session to authenticate with", - "in": "header" + "in": "header", + "x-appwrite": { + "platforms": [ + "client" + ] + } }, "DevKey": { "type": "apiKey", "name": "X-Appwrite-Dev-Key", "description": "Your secret dev API key", - "in": "header" + "in": "header", + "x-appwrite": { + "platforms": [ + "client" + ] + } }, "Cookie": { "type": "apiKey", "name": "Cookie", "description": "The user cookie to authenticate with. Used by SDKs that forward an incoming Cookie header in server-side runtimes.", - "in": "header" + "in": "header", + "x-appwrite": { + "platforms": [ + "client" + ] + } }, "ImpersonateUserId": { "type": "apiKey", @@ -28353,7 +28385,10 @@ "description": "Impersonate a user by ID", "in": "header", "x-appwrite": { - "optional": true + "optional": true, + "platforms": [ + "client" + ] } }, "ImpersonateUserEmail": { @@ -28362,7 +28397,10 @@ "description": "Impersonate a user by email", "in": "header", "x-appwrite": { - "optional": true + "optional": true, + "platforms": [ + "client" + ] } }, "ImpersonateUserPhone": { @@ -28371,7 +28409,10 @@ "description": "Impersonate a user by phone", "in": "header", "x-appwrite": { - "optional": true + "optional": true, + "platforms": [ + "client" + ] } } } diff --git a/specs/latest/open-api3-latest-console.json b/specs/latest/open-api3-latest-console.json index 1addf0dcc..f15e23b12 100644 --- a/specs/latest/open-api3-latest-console.json +++ b/specs/latest/open-api3-latest-console.json @@ -26517,7 +26517,7 @@ "tags": [ "documentsDB" ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", "responses": { "200": { "description": "SpecificationList", @@ -49593,7 +49593,7 @@ "storageAutoscaling": { "description": "Enable automatic storage expansion when usage exceeds threshold.", "type": "boolean", - "default": false, + "default": true, "example": false }, "storageAutoscalingThresholdPercent": { @@ -49604,11 +49604,11 @@ "format": "int32" }, "storageAutoscalingMaxGb": { - "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", "type": "integer", - "default": 0, "example": 0, - "format": "int32" + "format": "int32", + "nullable": true } }, "required": [ @@ -49628,7 +49628,7 @@ "tags": [ "mongo" ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", "responses": { "200": { "description": "SpecificationList", @@ -52073,7 +52073,7 @@ "storageAutoscaling": { "description": "Enable automatic storage expansion when usage exceeds threshold.", "type": "boolean", - "default": false, + "default": true, "example": false }, "storageAutoscalingThresholdPercent": { @@ -52084,11 +52084,11 @@ "format": "int32" }, "storageAutoscalingMaxGb": { - "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", "type": "integer", - "default": 0, "example": 0, - "format": "int32" + "format": "int32", + "nullable": true } }, "required": [ @@ -52108,7 +52108,7 @@ "tags": [ "mysql" ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", "responses": { "200": { "description": "SpecificationList", @@ -61690,7 +61690,7 @@ "storageAutoscaling": { "description": "Enable automatic storage expansion when usage exceeds threshold.", "type": "boolean", - "default": false, + "default": true, "example": false }, "storageAutoscalingThresholdPercent": { @@ -61701,11 +61701,11 @@ "format": "int32" }, "storageAutoscalingMaxGb": { - "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", "type": "integer", - "default": 0, "example": 0, - "format": "int32" + "format": "int32", + "nullable": true } }, "required": [ @@ -61725,7 +61725,7 @@ "tags": [ "postgresql" ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", "responses": { "200": { "description": "SpecificationList", @@ -88369,7 +88369,7 @@ "tags": [ "tablesDB" ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", "responses": { "200": { "description": "SpecificationList", @@ -105012,7 +105012,7 @@ "tags": [ "vectorsDB" ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", "responses": { "200": { "description": "SpecificationList", @@ -133209,6 +133209,23 @@ "format": "int32", "example": 100 }, + "storageStatus": { + "type": "string", + "description": "Storage resize status. Possible values: idle (no resize in flight), resizing (the volume is growing towards storageTargetGb).", + "example": "resizing" + }, + "storageTargetGb": { + "type": "integer", + "description": "Size in GB the volume is growing towards while storageStatus is resizing. 0 when no resize is in flight.", + "format": "int32", + "example": 120 + }, + "storageResizeStartedAt": { + "type": "string", + "description": "Time the in-flight storage resize started, in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, "storageClass": { "type": "string", "description": "Storage class. Currently always 'ssd'; DigitalOcean exposes a single block-storage class.", @@ -133288,9 +133305,9 @@ }, "storageAutoscalingMaxGb": { "type": "integer", - "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", "format": "int32", - "example": 500 + "example": 30 }, "maintenanceWindowDay": { "type": "string", @@ -133372,6 +133389,8 @@ "cpu", "memory", "storage", + "storageStatus", + "storageTargetGb", "storageClass", "storageMaxGb", "nodePool", @@ -133423,6 +133442,9 @@ "cpu": 2000, "memory": 4096, "storage": 100, + "storageStatus": "resizing", + "storageTargetGb": 120, + "storageResizeStartedAt": "2020-10-15T06:38:00.000+00:00", "storageClass": "ssd", "storageMaxGb": 100, "nodePool": "db-pool-4vcpu-8gb", @@ -133439,7 +133461,7 @@ "pitrRetentionDays": 14, "storageAutoscaling": true, "storageAutoscalingThresholdPercent": 85, - "storageAutoscalingMaxGb": 500, + "storageAutoscalingMaxGb": 30, "maintenanceWindowDay": "sun", "maintenanceWindowHourUtc": 3, "metricsEnabled": false, @@ -136726,6 +136748,30 @@ "format": "double", "example": 20 }, + "storageOverageRate": { + "type": "number", + "description": "Price per GB of storage above the included amount, per month, in USD.", + "format": "double", + "example": 0.125 + }, + "bandwidthOverageRate": { + "type": "number", + "description": "Price per GB of bandwidth above the included amount, per month, in USD.", + "format": "double", + "example": 0.08 + }, + "replicaRate": { + "type": "number", + "description": "High availability replica price as a fraction of the specification price.", + "format": "double", + "example": 1 + }, + "pitrRate": { + "type": "number", + "description": "Point-in-time recovery price as a fraction of the specification price.", + "format": "double", + "example": 0.2 + }, "cpu": { "type": "integer", "description": "Allocated CPU in millicores.", @@ -136766,6 +136812,10 @@ "slug", "name", "price", + "storageOverageRate", + "bandwidthOverageRate", + "replicaRate", + "pitrRate", "cpu", "memory", "maxConnections", @@ -136777,6 +136827,10 @@ "slug": "s-2vcpu-2gb", "name": "Standard", "price": 20, + "storageOverageRate": 0.125, + "bandwidthOverageRate": 0.08, + "replicaRate": 1, + "pitrRate": 0.2, "cpu": 2000, "memory": 2048, "maxConnections": 200, @@ -136802,68 +136856,15 @@ "description": "Total number of specifications.", "format": "int32", "example": 9 - }, - "pricing": { - "type": "object", - "description": "Overage and add-on pricing shared across all specifications.", - "allOf": [ - { - "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationPricing" - } - ] } }, "required": [ "specifications", - "total", - "pricing" + "total" ], "example": { "specifications": [], - "total": 9, - "pricing": null - } - }, - "dedicatedDatabaseSpecificationPricing": { - "description": "SpecificationPricing", - "type": "object", - "properties": { - "storageOverageRate": { - "type": "number", - "description": "Price per GB of storage above the included amount, per month, in USD.", - "format": "double", - "example": 0.125 - }, - "bandwidthOverageRate": { - "type": "number", - "description": "Price per GB of bandwidth above the included amount, per month, in USD.", - "format": "double", - "example": 0.08 - }, - "replicaRate": { - "type": "number", - "description": "High availability replica price as a fraction of the specification cost.", - "format": "double", - "example": 1 - }, - "pitrRate": { - "type": "number", - "description": "Point-in-time recovery price as a fraction of the specification cost.", - "format": "double", - "example": 0.2 - } - }, - "required": [ - "storageOverageRate", - "bandwidthOverageRate", - "replicaRate", - "pitrRate" - ], - "example": { - "storageOverageRate": 0.125, - "bandwidthOverageRate": 0.08, - "replicaRate": 1, - "pitrRate": 0.2 + "total": 9 } }, "databaseStatusConnections": { @@ -140719,6 +140720,9 @@ "description": "Your project ID", "in": "header", "x-appwrite": { + "platforms": [ + "console" + ], "demo": "" } }, @@ -140730,6 +140734,9 @@ "x-appwrite": { "location": "path", "param": "project_id", + "platforms": [ + "console" + ], "demo": "" } }, @@ -140739,6 +140746,9 @@ "description": "Your secret API key", "in": "header", "x-appwrite": { + "platforms": [ + "console" + ], "demo": "" } }, @@ -140748,6 +140758,9 @@ "description": "Your organization ID", "in": "header", "x-appwrite": { + "platforms": [ + "console" + ], "demo": "" } }, @@ -140757,6 +140770,9 @@ "description": "Your secret JSON Web Token", "in": "header", "x-appwrite": { + "platforms": [ + "console" + ], "demo": "" } }, @@ -140764,7 +140780,12 @@ "type": "http", "scheme": "bearer", "bearerFormat": "JWT", - "description": "The OAuth access token to authenticate with" + "description": "The OAuth access token to authenticate with", + "x-appwrite": { + "platforms": [ + "console" + ] + } }, "Locale": { "type": "apiKey", @@ -140772,6 +140793,9 @@ "description": "", "in": "header", "x-appwrite": { + "platforms": [ + "console" + ], "demo": "en" } }, @@ -140781,6 +140805,9 @@ "description": "", "in": "header", "x-appwrite": { + "platforms": [ + "console" + ], "demo": "" } }, @@ -140788,19 +140815,34 @@ "type": "apiKey", "name": "Cookie", "description": "The user cookie to authenticate with. Used by SDKs that forward an incoming Cookie header in server-side runtimes.", - "in": "header" + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ] + } }, "Session": { "type": "apiKey", "name": "X-Appwrite-Session", "description": "The user session to authenticate with", - "in": "header" + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ] + } }, "DevKey": { "type": "apiKey", "name": "X-Appwrite-Dev-Key", "description": "Your secret dev API key", - "in": "header" + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ] + } }, "ImpersonateUserId": { "type": "apiKey", @@ -140808,7 +140850,10 @@ "description": "Impersonate a user by ID", "in": "header", "x-appwrite": { - "optional": true + "optional": true, + "platforms": [ + "console" + ] } }, "ImpersonateUserEmail": { @@ -140817,7 +140862,10 @@ "description": "Impersonate a user by email", "in": "header", "x-appwrite": { - "optional": true + "optional": true, + "platforms": [ + "console" + ] } }, "ImpersonateUserPhone": { @@ -140826,14 +140874,22 @@ "description": "Impersonate a user by phone", "in": "header", "x-appwrite": { - "optional": true + "optional": true, + "platforms": [ + "console" + ] } }, "Platform": { "type": "apiKey", "name": "X-Appwrite-Platform", "description": "The platform type (Appwrite or Imagine)", - "in": "header" + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ] + } } } }, diff --git a/specs/latest/open-api3-latest-server.json b/specs/latest/open-api3-latest-server.json index ea2486aa5..c8d7142f1 100644 --- a/specs/latest/open-api3-latest-server.json +++ b/specs/latest/open-api3-latest-server.json @@ -21340,7 +21340,7 @@ "tags": [ "documentsDB" ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", "responses": { "200": { "description": "SpecificationList", @@ -36229,7 +36229,7 @@ "storageAutoscaling": { "description": "Enable automatic storage expansion when usage exceeds threshold.", "type": "boolean", - "default": false, + "default": true, "example": false }, "storageAutoscalingThresholdPercent": { @@ -36240,11 +36240,11 @@ "format": "int32" }, "storageAutoscalingMaxGb": { - "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", "type": "integer", - "default": 0, "example": 0, - "format": "int32" + "format": "int32", + "nullable": true } }, "required": [ @@ -36264,7 +36264,7 @@ "tags": [ "mongo" ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", "responses": { "200": { "description": "SpecificationList", @@ -38740,7 +38740,7 @@ "storageAutoscaling": { "description": "Enable automatic storage expansion when usage exceeds threshold.", "type": "boolean", - "default": false, + "default": true, "example": false }, "storageAutoscalingThresholdPercent": { @@ -38751,11 +38751,11 @@ "format": "int32" }, "storageAutoscalingMaxGb": { - "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", "type": "integer", - "default": 0, "example": 0, - "format": "int32" + "format": "int32", + "nullable": true } }, "required": [ @@ -38775,7 +38775,7 @@ "tags": [ "mysql" ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", "responses": { "200": { "description": "SpecificationList", @@ -44816,7 +44816,7 @@ "storageAutoscaling": { "description": "Enable automatic storage expansion when usage exceeds threshold.", "type": "boolean", - "default": false, + "default": true, "example": false }, "storageAutoscalingThresholdPercent": { @@ -44827,11 +44827,11 @@ "format": "int32" }, "storageAutoscalingMaxGb": { - "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", "type": "integer", - "default": 0, "example": 0, - "format": "int32" + "format": "int32", + "nullable": true } }, "required": [ @@ -44851,7 +44851,7 @@ "tags": [ "postgresql" ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", "responses": { "200": { "description": "SpecificationList", @@ -68987,7 +68987,7 @@ "tags": [ "tablesDB" ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", "responses": { "200": { "description": "SpecificationList", @@ -83287,7 +83287,7 @@ "tags": [ "vectorsDB" ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", "responses": { "200": { "description": "SpecificationList", @@ -106815,6 +106815,23 @@ "format": "int32", "example": 100 }, + "storageStatus": { + "type": "string", + "description": "Storage resize status. Possible values: idle (no resize in flight), resizing (the volume is growing towards storageTargetGb).", + "example": "resizing" + }, + "storageTargetGb": { + "type": "integer", + "description": "Size in GB the volume is growing towards while storageStatus is resizing. 0 when no resize is in flight.", + "format": "int32", + "example": 120 + }, + "storageResizeStartedAt": { + "type": "string", + "description": "Time the in-flight storage resize started, in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, "storageClass": { "type": "string", "description": "Storage class. Currently always 'ssd'; DigitalOcean exposes a single block-storage class.", @@ -106894,9 +106911,9 @@ }, "storageAutoscalingMaxGb": { "type": "integer", - "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", "format": "int32", - "example": 500 + "example": 30 }, "maintenanceWindowDay": { "type": "string", @@ -106978,6 +106995,8 @@ "cpu", "memory", "storage", + "storageStatus", + "storageTargetGb", "storageClass", "storageMaxGb", "nodePool", @@ -107029,6 +107048,9 @@ "cpu": 2000, "memory": 4096, "storage": 100, + "storageStatus": "resizing", + "storageTargetGb": 120, + "storageResizeStartedAt": "2020-10-15T06:38:00.000+00:00", "storageClass": "ssd", "storageMaxGb": 100, "nodePool": "db-pool-4vcpu-8gb", @@ -107045,7 +107067,7 @@ "pitrRetentionDays": 14, "storageAutoscaling": true, "storageAutoscalingThresholdPercent": 85, - "storageAutoscalingMaxGb": 500, + "storageAutoscalingMaxGb": 30, "maintenanceWindowDay": "sun", "maintenanceWindowHourUtc": 3, "metricsEnabled": false, @@ -108595,6 +108617,30 @@ "format": "double", "example": 20 }, + "storageOverageRate": { + "type": "number", + "description": "Price per GB of storage above the included amount, per month, in USD.", + "format": "double", + "example": 0.125 + }, + "bandwidthOverageRate": { + "type": "number", + "description": "Price per GB of bandwidth above the included amount, per month, in USD.", + "format": "double", + "example": 0.08 + }, + "replicaRate": { + "type": "number", + "description": "High availability replica price as a fraction of the specification price.", + "format": "double", + "example": 1 + }, + "pitrRate": { + "type": "number", + "description": "Point-in-time recovery price as a fraction of the specification price.", + "format": "double", + "example": 0.2 + }, "cpu": { "type": "integer", "description": "Allocated CPU in millicores.", @@ -108635,6 +108681,10 @@ "slug", "name", "price", + "storageOverageRate", + "bandwidthOverageRate", + "replicaRate", + "pitrRate", "cpu", "memory", "maxConnections", @@ -108646,6 +108696,10 @@ "slug": "s-2vcpu-2gb", "name": "Standard", "price": 20, + "storageOverageRate": 0.125, + "bandwidthOverageRate": 0.08, + "replicaRate": 1, + "pitrRate": 0.2, "cpu": 2000, "memory": 2048, "maxConnections": 200, @@ -108671,68 +108725,15 @@ "description": "Total number of specifications.", "format": "int32", "example": 9 - }, - "pricing": { - "type": "object", - "description": "Overage and add-on pricing shared across all specifications.", - "allOf": [ - { - "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationPricing" - } - ] } }, "required": [ "specifications", - "total", - "pricing" + "total" ], "example": { "specifications": [], - "total": 9, - "pricing": null - } - }, - "dedicatedDatabaseSpecificationPricing": { - "description": "SpecificationPricing", - "type": "object", - "properties": { - "storageOverageRate": { - "type": "number", - "description": "Price per GB of storage above the included amount, per month, in USD.", - "format": "double", - "example": 0.125 - }, - "bandwidthOverageRate": { - "type": "number", - "description": "Price per GB of bandwidth above the included amount, per month, in USD.", - "format": "double", - "example": 0.08 - }, - "replicaRate": { - "type": "number", - "description": "High availability replica price as a fraction of the specification cost.", - "format": "double", - "example": 1 - }, - "pitrRate": { - "type": "number", - "description": "Point-in-time recovery price as a fraction of the specification cost.", - "format": "double", - "example": 0.2 - } - }, - "required": [ - "storageOverageRate", - "bandwidthOverageRate", - "replicaRate", - "pitrRate" - ], - "example": { - "storageOverageRate": 0.125, - "bandwidthOverageRate": 0.08, - "replicaRate": 1, - "pitrRate": 0.2 + "total": 9 } }, "databaseStatusConnections": { @@ -111686,6 +111687,9 @@ "description": "Your project ID", "in": "header", "x-appwrite": { + "platforms": [ + "server" + ], "demo": "" } }, @@ -111697,6 +111701,9 @@ "x-appwrite": { "location": "path", "param": "project_id", + "platforms": [ + "server" + ], "demo": "" } }, @@ -111706,6 +111713,9 @@ "description": "Your secret API key", "in": "header", "x-appwrite": { + "platforms": [ + "server" + ], "demo": "" } }, @@ -111715,6 +111725,9 @@ "description": "Your organization ID", "in": "header", "x-appwrite": { + "platforms": [ + "server" + ], "demo": "" } }, @@ -111724,6 +111737,9 @@ "description": "Your secret JSON Web Token", "in": "header", "x-appwrite": { + "platforms": [ + "server" + ], "demo": "" } }, @@ -111731,7 +111747,12 @@ "type": "http", "scheme": "bearer", "bearerFormat": "JWT", - "description": "The OAuth access token to authenticate with" + "description": "The OAuth access token to authenticate with", + "x-appwrite": { + "platforms": [ + "server" + ] + } }, "Locale": { "type": "apiKey", @@ -111739,6 +111760,9 @@ "description": "", "in": "header", "x-appwrite": { + "platforms": [ + "server" + ], "demo": "en" } }, @@ -111746,25 +111770,45 @@ "type": "apiKey", "name": "X-Appwrite-Session", "description": "The user session to authenticate with", - "in": "header" + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ] + } }, "ForwardedUserAgent": { "type": "apiKey", "name": "X-Forwarded-User-Agent", "description": "The user agent string of the client that made the request", - "in": "header" + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ] + } }, "DevKey": { "type": "apiKey", "name": "X-Appwrite-Dev-Key", "description": "Your secret dev API key", - "in": "header" + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ] + } }, "Cookie": { "type": "apiKey", "name": "Cookie", "description": "The user cookie to authenticate with. Used by SDKs that forward an incoming Cookie header in server-side runtimes.", - "in": "header" + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ] + } }, "ImpersonateUserId": { "type": "apiKey", @@ -111772,7 +111816,10 @@ "description": "Impersonate a user by ID", "in": "header", "x-appwrite": { - "optional": true + "optional": true, + "platforms": [ + "server" + ] } }, "ImpersonateUserEmail": { @@ -111781,7 +111828,10 @@ "description": "Impersonate a user by email", "in": "header", "x-appwrite": { - "optional": true + "optional": true, + "platforms": [ + "server" + ] } }, "ImpersonateUserPhone": { @@ -111790,7 +111840,10 @@ "description": "Impersonate a user by phone", "in": "header", "x-appwrite": { - "optional": true + "optional": true, + "platforms": [ + "server" + ] } } } diff --git a/specs/latest/open-api3-latest.json b/specs/latest/open-api3-latest.json new file mode 100644 index 000000000..58c1f2386 --- /dev/null +++ b/specs/latest/open-api3-latest.json @@ -0,0 +1,150167 @@ +{ + "openapi": "3.0.0", + "info": { + "version": "2.0.0", + "title": "Appwrite", + "description": "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)", + "termsOfService": "https:\/\/appwrite.io\/policy\/terms", + "contact": { + "name": "Appwrite Team", + "url": "https:\/\/appwrite.io\/support", + "email": "team@appwrite.io" + }, + "license": { + "name": "BSD-3-Clause", + "url": "https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE" + } + }, + "servers": [ + { + "url": "https:\/\/cloud.appwrite.io\/v1", + "description": "Appwrite Cloud endpoint." + }, + { + "url": "https:\/\/{region}.cloud.appwrite.io\/v1", + "description": "Appwrite Cloud regional endpoint. Replace `{region}` with your project region.", + "variables": { + "region": { + "default": "fra", + "description": "Appwrite Cloud region." + } + } + } + ], + "paths": { + "\/account": { + "get": { + "summary": "Get account", + "operationId": "accountGet", + "tags": [ + "account" + ], + "description": "Get the currently logged in user.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "post": { + "summary": "Create account", + "operationId": "accountCreate", + "tags": [ + "account" + ], + "description": "Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [\/account\/verfication](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailSession).", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/create.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "New user password. Must be between 8 and 256 chars.", + "type": "string", + "example": "password", + "format": "password" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete account", + "operationId": "accountDelete", + "tags": [ + "account" + ], + "description": "Delete the currently logged in user.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ] + } + }, + "\/account\/billing-addresses": { + "get": { + "summary": "List billing addresses", + "operationId": "accountListBillingAddresses", + "tags": [ + "account" + ], + "description": "List all billing addresses for a user.", + "responses": { + "200": { + "description": "Billing address list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/billingAddressList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/list-billing-addresses.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, expired, failed", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create billing address", + "operationId": "accountCreateBillingAddress", + "tags": [ + "account" + ], + "description": "Add a new billing address to a user's account.", + "responses": { + "201": { + "description": "Address", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/billingAddress" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/create-billing-address.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "country": { + "description": "Country", + "type": "string", + "example": "" + }, + "city": { + "description": "City", + "type": "string", + "example": "" + }, + "streetAddress": { + "description": "Street address", + "type": "string", + "example": "" + }, + "addressLine2": { + "description": "Address line 2", + "type": "string", + "default": "", + "example": "" + }, + "state": { + "description": "State or province", + "type": "string", + "default": "", + "example": "" + }, + "postalCode": { + "description": "Postal code", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "country", + "city", + "streetAddress" + ] + } + } + } + } + } + }, + "\/account\/billing-addresses\/{billingAddressId}": { + "get": { + "summary": "Get billing address", + "operationId": "accountGetBillingAddress", + "tags": [ + "account" + ], + "description": "Get a specific billing address for a user using it's ID.", + "responses": { + "200": { + "description": "Address", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/billingAddress" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/get-billing-address.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "billingAddressId", + "description": "Unique ID of billing address", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update billing address", + "operationId": "accountUpdateBillingAddress", + "tags": [ + "account" + ], + "description": "Update a specific billing address using it's ID.", + "responses": { + "200": { + "description": "Address", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/billingAddress" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/update-billing-address.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "billingAddressId", + "description": "Unique ID of billing address", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "country": { + "description": "Country", + "type": "string", + "example": "" + }, + "city": { + "description": "City", + "type": "string", + "example": "" + }, + "streetAddress": { + "description": "Street address", + "type": "string", + "example": "" + }, + "addressLine2": { + "description": "Address line 2", + "type": "string", + "default": "", + "example": "" + }, + "state": { + "description": "State or province", + "type": "string", + "default": "", + "example": "" + }, + "postalCode": { + "description": "Postal code", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "country", + "city", + "streetAddress" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete billing address", + "operationId": "accountDeleteBillingAddress", + "tags": [ + "account" + ], + "description": "Delete a specific billing address using it's ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/delete-billing-address.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "billingAddressId", + "description": "Billing address unique ID", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/account\/consents": { + "get": { + "summary": "List consents", + "operationId": "accountListConsents", + "tags": [ + "account" + ], + "description": "Get a list of the OAuth2 consents the current user has given to third-party apps.", + "responses": { + "200": { + "description": "OAuth2 consents list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ConsentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/list-consents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/consents\/{consentId}": { + "get": { + "summary": "Get consent", + "operationId": "accountGetConsent", + "tags": [ + "account" + ], + "description": "Get an OAuth2 consent the current user has given to a third-party app by its unique ID.", + "responses": { + "200": { + "description": "OAuth2 Consent", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Consent" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/get-consent.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete consent", + "operationId": "accountDeleteConsent", + "tags": [ + "account" + ], + "description": "Delete an OAuth2 consent by its unique ID. All token families issued under the consent are revoked, and the app must ask for consent again to regain access.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/delete-consent.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/account\/consents\/{consentId}\/tokens": { + "get": { + "summary": "List consent tokens", + "operationId": "accountListConsentTokens", + "tags": [ + "account" + ], + "description": "Get a list of the token families issued under an OAuth2 consent. Each entry represents one authorized device or session; the token secrets themselves are never returned.", + "responses": { + "200": { + "description": "OAuth2 consent tokens list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ConsentTokenList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/list-consent-tokens.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/consents\/{consentId}\/tokens\/{tokenId}": { + "get": { + "summary": "Get consent token", + "operationId": "accountGetConsentToken", + "tags": [ + "account" + ], + "description": "Get a token family issued under an OAuth2 consent by its unique ID. The token secrets themselves are never returned.", + "responses": { + "200": { + "description": "OAuth2 Consent Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ConsentToken" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/get-consent-token.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "tokenId", + "description": "Token unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete consent token", + "operationId": "accountDeleteConsentToken", + "tags": [ + "account" + ], + "description": "Delete a token family issued under an OAuth2 consent by its unique ID. The access and refresh tokens of the family stop working immediately; other token families and the consent itself are unaffected.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/delete-consent-token.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "tokenId", + "description": "Token unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/account\/coupons\/{couponId}": { + "get": { + "summary": "Get coupon details", + "operationId": "accountGetCoupon", + "tags": [ + "account" + ], + "description": "Get coupon details for an account.", + "responses": { + "200": { + "description": "Coupon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/coupon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/get-coupon.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "couponId", + "description": "ID of the coupon", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/account\/email": { + "patch": { + "summary": "Update email", + "operationId": "accountUpdateEmail", + "tags": [ + "account" + ], + "description": "Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.\n", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "email", + "password" + ] + } + } + } + } + } + }, + "\/account\/identities": { + "get": { + "summary": "List identities", + "operationId": "accountListIdentities", + "tags": [ + "account" + ], + "description": "Get the list of identities for the currently logged in user.", + "responses": { + "200": { + "description": "Identities List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/identityList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "identities", + "demo": "account\/list-identities.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "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: userId, provider, providerUid, providerEmail, providerAccessTokenExpiry", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/identities\/{identityId}": { + "delete": { + "summary": "Delete identity", + "operationId": "accountDeleteIdentity", + "tags": [ + "account" + ], + "description": "Delete an identity by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "identities", + "demo": "account\/delete-identity.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "identityId", + "description": "Identity ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/account\/invoices": { + "get": { + "summary": "List invoices", + "operationId": "accountListInvoices", + "tags": [ + "account" + ], + "description": "List all invoices tied to an account.", + "responses": { + "200": { + "description": "Billing invoices list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/invoiceList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/list-invoices.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, aggregationId, type, amount, currency, from, to, dueAt, attempts, status, grossAmount", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/account\/jwts": { + "post": { + "summary": "Create JWT", + "operationId": "accountCreateJWT", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a JSON Web Token. You can use the resulting JWT to authenticate on behalf of the current user when working with the Appwrite server-side API and SDKs. The JWT secret is valid for 15 minutes from its creation and will be invalid if the user will logout in that time frame.", + "responses": { + "201": { + "description": "JWT", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/jwt" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-jwt.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "duration": { + "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", + "type": "integer", + "default": 900, + "example": 0, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/account\/keys": { + "get": { + "summary": "List account key", + "operationId": "accountListKeys", + "tags": [ + "account" + ], + "description": "Get a list of all API keys from the current account.", + "responses": { + "200": { + "description": "API Keys List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/keyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "account\/list-keys.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create account key", + "operationId": "accountCreateKey", + "tags": [ + "account" + ], + "description": "Create a new account API key.", + "responses": { + "201": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "account\/create-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "" + }, + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "items": { + "title": "AccountKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "account" + ], + "title": "account" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + } + ] + } + }, + "expire": { + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } + } + } + } + }, + "\/account\/keys\/{keyId}": { + "get": { + "summary": "Get account key", + "operationId": "accountGetKey", + "tags": [ + "account" + ], + "description": "Get a key by its unique ID. This endpoint returns details about a specific API key in your account including it's scopes.", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "account\/get-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update account key", + "operationId": "accountUpdateKey", + "tags": [ + "account" + ], + "description": "Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "account\/update-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "" + }, + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "items": { + "title": "AccountKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "account" + ], + "title": "account" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + } + ] + } + }, + "expire": { + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete account key", + "operationId": "accountDeleteKey", + "tags": [ + "account" + ], + "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "account\/delete-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/account\/logs": { + "get": { + "summary": "List logs", + "operationId": "accountListLogs", + "tags": [ + "account" + ], + "description": "Get the list of latest security activity logs for the currently logged in user. Each log returns user IP address, location and date and time of log.", + "responses": { + "200": { + "description": "Logs List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/logList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "logs", + "demo": "account\/list-logs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "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). Only supported methods are limit and offset", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/mfa": { + "patch": { + "summary": "Update MFA", + "operationId": "accountUpdateMFA", + "tags": [ + "account" + ], + "description": "Enable or disable MFA on an account.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "mfa": { + "description": "Enable or disable MFA.", + "type": "boolean", + "example": false + } + }, + "required": [ + "mfa" + ] + } + } + } + } + } + }, + "\/account\/mfa\/authenticators\/{type}": { + "post": { + "summary": "Create authenticator", + "operationId": "accountCreateMfaAuthenticator", + "tags": [ + "account" + ], + "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", + "responses": { + "200": { + "description": "MFAType", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaType" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/create-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAAuthenticator" + }, + "methods": [ + { + "name": "createMfaAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaType" + } + ], + "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", + "demo": "account\/create-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAAuthenticator" + } + }, + { + "name": "createMFAAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaType" + } + ], + "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", + "demo": "account\/create-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Type of authenticator. Must be `totp`", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update authenticator (confirmation)", + "operationId": "accountUpdateMfaAuthenticator", + "tags": [ + "account" + ], + "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAAuthenticator" + }, + "methods": [ + { + "name": "updateMfaAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [ + "type", + "otp" + ], + "required": [ + "type", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", + "demo": "account\/update-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAAuthenticator" + } + }, + { + "name": "updateMFAAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [ + "type", + "otp" + ], + "required": [ + "type", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", + "demo": "account\/update-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Type of authenticator.", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "otp": { + "description": "Valid verification token.", + "type": "string", + "example": "" + } + }, + "required": [ + "otp" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete authenticator", + "operationId": "accountDeleteMfaAuthenticator", + "tags": [ + "account" + ], + "description": "Delete an authenticator for a user by ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/delete-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.deleteMFAAuthenticator" + }, + "methods": [ + { + "name": "deleteMfaAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator for a user by ID.", + "demo": "account\/delete-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.deleteMFAAuthenticator" + } + }, + { + "name": "deleteMFAAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator for a user by ID.", + "demo": "account\/delete-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Type of authenticator.", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ] + } + }, + "\/account\/mfa\/challenges": { + "post": { + "summary": "Create MFA challenge", + "operationId": "accountCreateMfaChallenge", + "tags": [ + "account" + ], + "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", + "responses": { + "201": { + "description": "MFA Challenge", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaChallenge" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/create-mfa-challenge.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAChallenge" + }, + "methods": [ + { + "name": "createMfaChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [ + "factor" + ], + "required": [ + "factor" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaChallenge" + } + ], + "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", + "demo": "account\/create-mfa-challenge.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAChallenge" + } + }, + { + "name": "createMFAChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [ + "factor" + ], + "required": [ + "factor" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaChallenge" + } + ], + "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", + "demo": "account\/create-mfa-challenge.md", + "public": true + } + ], + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "factor": { + "description": "Factor used for verification. Must be one of following: `email`, `phone`, `totp`, `recoveryCode`, `custom`.", + "type": "string", + "example": "email", + "title": "AuthenticationFactor", + "oneOf": [ + { + "type": "string", + "enum": [ + "email" + ], + "title": "email" + }, + { + "type": "string", + "enum": [ + "phone" + ], + "title": "phone" + }, + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + }, + { + "type": "string", + "enum": [ + "recoverycode" + ], + "title": "recoverycode" + }, + { + "type": "string", + "enum": [ + "custom" + ], + "title": "custom" + } + ] + } + }, + "required": [ + "factor" + ] + } + } + } + } + }, + "put": { + "summary": "Update MFA challenge (confirmation)", + "operationId": "accountUpdateMfaChallenge", + "tags": [ + "account" + ], + "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "responses": { + "200": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa-challenge.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},challengeId:{param-challengeId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAChallenge" + }, + "methods": [ + { + "name": "updateMfaChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [ + "challengeId", + "otp" + ], + "required": [ + "challengeId", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/session" + } + ], + "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/update-mfa-challenge.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAChallenge" + } + }, + { + "name": "updateMFAChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [ + "challengeId", + "otp" + ], + "required": [ + "challengeId", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/session" + } + ], + "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/update-mfa-challenge.md", + "public": true + } + ], + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "challengeId": { + "description": "ID of the challenge.", + "type": "string", + "example": "" + }, + "otp": { + "description": "Valid verification token.", + "type": "string", + "example": "" + } + }, + "required": [ + "challengeId", + "otp" + ] + } + } + } + } + } + }, + "\/account\/mfa\/factors": { + "get": { + "summary": "List factors", + "operationId": "accountListMfaFactors", + "tags": [ + "account" + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "responses": { + "200": { + "description": "MFAFactors", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaFactors" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/list-mfa-factors.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.listMFAFactors" + }, + "methods": [ + { + "name": "listMfaFactors", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "account\/list-mfa-factors.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.listMFAFactors" + } + }, + { + "name": "listMFAFactors", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "account\/list-mfa-factors.md", + "public": true + } + ], + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/mfa\/recovery-codes": { + "get": { + "summary": "List MFA recovery codes", + "operationId": "accountGetMfaRecoveryCodes", + "tags": [ + "account" + ], + "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", + "responses": { + "200": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/get-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.getMFARecoveryCodes" + }, + "methods": [ + { + "name": "getMfaRecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", + "demo": "account\/get-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.getMFARecoveryCodes" + } + }, + { + "name": "getMFARecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", + "demo": "account\/get-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "post": { + "summary": "Create MFA recovery codes", + "operationId": "accountCreateMfaRecoveryCodes", + "tags": [ + "account" + ], + "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "responses": { + "201": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/create-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFARecoveryCodes" + }, + "methods": [ + { + "name": "createMfaRecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/create-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFARecoveryCodes" + } + }, + { + "name": "createMFARecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/create-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "patch": { + "summary": "Update MFA recovery codes (regenerate)", + "operationId": "accountUpdateMfaRecoveryCodes", + "tags": [ + "account" + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", + "responses": { + "200": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFARecoveryCodes" + }, + "methods": [ + { + "name": "updateMfaRecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", + "demo": "account\/update-mfa-recovery-codes.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFARecoveryCodes" + } + }, + { + "name": "updateMFARecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", + "demo": "account\/update-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/name": { + "patch": { + "summary": "Update name", + "operationId": "accountUpdateName", + "tags": [ + "account" + ], + "description": "Update currently logged in user account name.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-name.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "example": "" + } + }, + "required": [ + "name" + ] + } + } + } + } + } + }, + "\/account\/password": { + "patch": { + "summary": "Update password", + "operationId": "accountUpdatePassword", + "tags": [ + "account" + ], + "description": "Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth, Team Invites and Magic URL, oldPassword is optional.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-password.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "password": { + "description": "New user password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + }, + "oldPassword": { + "description": "Current user password. Max length: 256 chars.", + "type": "string", + "default": "", + "example": "password", + "format": "password" + } + }, + "required": [ + "password" + ] + } + } + } + } + } + }, + "\/account\/payment-methods": { + "get": { + "summary": "List payment methods", + "operationId": "accountListPaymentMethods", + "tags": [ + "account" + ], + "description": "List payment methods for this account.", + "responses": { + "200": { + "description": "Payment methods list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/paymentMethodList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/list-payment-methods.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, expired, failed", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create new payment method", + "operationId": "accountCreatePaymentMethod", + "tags": [ + "account" + ], + "description": "Create a new payment method for the current user account.", + "responses": { + "201": { + "description": "paymentMethod", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/paymentMethod" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/create-payment-method.md", + "rate-limit": 10, + "rate-time": 86400, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ] + } + }, + "\/account\/payment-methods\/{paymentMethodId}": { + "get": { + "summary": "Get payment method", + "operationId": "accountGetPaymentMethod", + "tags": [ + "account" + ], + "description": "Get a specific payment method for the user.", + "responses": { + "200": { + "description": "paymentMethod", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/paymentMethod" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/get-payment-method.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "paymentMethodId", + "description": "Unique ID of payment method", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update payment method", + "operationId": "accountUpdatePaymentMethod", + "tags": [ + "account" + ], + "description": "Update a new payment method for the current user account.", + "responses": { + "200": { + "description": "paymentMethod", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/paymentMethod" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/update-payment-method.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "paymentMethodId", + "description": "Unique ID of payment method", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "expiryMonth": { + "description": "Payment expiry month", + "type": "integer", + "example": 1, + "format": "int32" + }, + "expiryYear": { + "description": "Expiry year", + "type": "integer", + "example": 2026, + "format": "int32" + }, + "state": { + "description": "State of the payment method country", + "type": "string", + "example": "" + } + }, + "required": [ + "expiryMonth", + "expiryYear" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete payment method", + "operationId": "accountDeletePaymentMethod", + "tags": [ + "account" + ], + "description": "Delete a specific payment method from a user's account.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/delete-payment-method.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "paymentMethodId", + "description": "Unique ID of payment method", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/account\/payment-methods\/{paymentMethodId}\/provider": { + "patch": { + "summary": "Update payment method provider id", + "operationId": "accountUpdatePaymentMethodProvider", + "tags": [ + "account" + ], + "description": "Update payment method provider.", + "responses": { + "200": { + "description": "paymentMethod", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/paymentMethod" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/update-payment-method-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "paymentMethodId", + "description": "Unique ID of payment method", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerMethodId": { + "description": "Payment method ID from the payment provider", + "type": "string", + "example": "" + }, + "name": { + "description": "Name in the payment method", + "type": "string", + "example": "" + }, + "state": { + "description": "State of the payment method country", + "type": "string", + "example": "", + "nullable": true + } + }, + "required": [ + "providerMethodId", + "name" + ] + } + } + } + } + } + }, + "\/account\/payment-methods\/{paymentMethodId}\/setup": { + "patch": { + "summary": "Update payment method with new setup with mandates for indian cards", + "operationId": "accountUpdatePaymentMethodMandateOptions", + "tags": [ + "account" + ], + "description": "Update payment method mandate options.", + "responses": { + "200": { + "description": "paymentMethod", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/paymentMethod" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/update-payment-method-mandate-options.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "paymentMethodId", + "description": "Unique ID of payment method", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/account\/phone": { + "patch": { + "summary": "Update phone", + "operationId": "accountUpdatePhone", + "tags": [ + "account" + ], + "description": "Update the currently logged in user's phone number. After updating the phone number, the phone verification status will be reset. A confirmation SMS is not sent automatically, however you can use the [POST \/account\/verification\/phone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createPhoneVerification) endpoint to send a confirmation SMS.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "example": "+12065550100", + "format": "phone" + }, + "password": { + "description": "User password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "phone", + "password" + ] + } + } + } + } + } + }, + "\/account\/prefs": { + "get": { + "summary": "Get account preferences", + "operationId": "accountGetPrefs", + "tags": [ + "account" + ], + "description": "Get the preferences as a key-value object for the currently logged in user.", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/get-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "patch": { + "summary": "Update preferences", + "operationId": "accountUpdatePrefs", + "tags": [ + "account" + ], + "description": "Update currently logged in user account preferences. The object you pass is stored as is, and replaces any previous value. The maximum allowed prefs size is 64kB and throws error if exceeded.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "prefs": { + "description": "Prefs key-value JSON object.", + "type": "object", + "default": {}, + "example": { + "language": "en", + "timezone": "UTC", + "darkTheme": true + } + } + }, + "required": [ + "prefs" + ] + } + } + } + } + } + }, + "\/account\/recovery": { + "post": { + "summary": "Create password recovery", + "operationId": "accountCreateRecovery", + "tags": [ + "account" + ], + "description": "Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/create-recovery.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "url": { + "description": "URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + } + }, + "required": [ + "email", + "url" + ] + } + } + } + } + }, + "put": { + "summary": "Update password recovery (confirmation)", + "operationId": "accountUpdateRecovery", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/update-recovery.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "" + }, + "secret": { + "description": "Valid reset token.", + "type": "string", + "example": "" + }, + "password": { + "description": "New user password. Must be between 8 and 256 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "userId", + "secret", + "password" + ] + } + } + } + } + } + }, + "\/account\/sessions": { + "get": { + "summary": "List sessions", + "operationId": "accountListSessions", + "tags": [ + "account" + ], + "description": "Get the list of active sessions across different devices for the currently logged in user.", + "responses": { + "200": { + "description": "Sessions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/sessionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/list-sessions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "delete": { + "summary": "Delete sessions", + "operationId": "accountDeleteSessions", + "tags": [ + "account" + ], + "description": "Delete all sessions from the user account and remove any sessions cookies from the end client.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/delete-sessions.md", + "rate-limit": 100, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/sessions\/anonymous": { + "post": { + "summary": "Create anonymous session", + "operationId": "accountCreateAnonymousSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to allow a new user to register an anonymous account in your project. This route will also create a new session for the user. To allow the new user to convert an anonymous account to a normal account, you need to update its [email and password](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateEmail) or create an [OAuth2 session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#CreateOAuth2Session).", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-anonymous-session.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/sessions\/email": { + "post": { + "summary": "Create email password session", + "operationId": "accountCreateEmailPasswordSession", + "tags": [ + "account" + ], + "description": "Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-email-password-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},email:{param-email}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "email", + "password" + ] + } + } + } + } + } + }, + "\/account\/sessions\/magic-url": { + "put": { + "summary": "Update magic URL session", + "operationId": "accountUpdateMagicURLSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "sessions", + "demo": "account\/update-magic-url-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.6.0", + "replaceWith": "account.createSession" + }, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/sessions\/oauth2\/{provider}": { + "get": { + "summary": "Create OAuth2 session", + "operationId": "accountCreateOAuth2Session", + "tags": [ + "account" + ], + "description": "Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the email received from the OAuth2 provider and attach the new session to the existing user. If no matching user is found - the server will create a new user.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "301": { + "description": "No content", + "content": { + "text\/html": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-o-auth-2-session.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "provider", + "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, cloudflare, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, huggingface, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, resend, salesforce, slack, spotify, stripe, tradeshift, tradeshiftBox, twitch, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", + "required": true, + "schema": { + "type": "string", + "example": "amazon", + "title": "OAuthProvider", + "oneOf": [ + { + "type": "string", + "enum": [ + "amazon" + ], + "title": "amazon" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "appwrite" + ], + "title": "appwrite" + }, + { + "type": "string", + "enum": [ + "auth0" + ], + "title": "auth0" + }, + { + "type": "string", + "enum": [ + "authentik" + ], + "title": "authentik" + }, + { + "type": "string", + "enum": [ + "autodesk" + ], + "title": "autodesk" + }, + { + "type": "string", + "enum": [ + "bitbucket" + ], + "title": "bitbucket" + }, + { + "type": "string", + "enum": [ + "bitly" + ], + "title": "bitly" + }, + { + "type": "string", + "enum": [ + "box" + ], + "title": "box" + }, + { + "type": "string", + "enum": [ + "cloudflare" + ], + "title": "cloudflare" + }, + { + "type": "string", + "enum": [ + "dailymotion" + ], + "title": "dailymotion" + }, + { + "type": "string", + "enum": [ + "discord" + ], + "title": "discord" + }, + { + "type": "string", + "enum": [ + "disqus" + ], + "title": "disqus" + }, + { + "type": "string", + "enum": [ + "dropbox" + ], + "title": "dropbox" + }, + { + "type": "string", + "enum": [ + "etsy" + ], + "title": "etsy" + }, + { + "type": "string", + "enum": [ + "facebook" + ], + "title": "facebook" + }, + { + "type": "string", + "enum": [ + "figma" + ], + "title": "figma" + }, + { + "type": "string", + "enum": [ + "fusionauth" + ], + "title": "fusionauth" + }, + { + "type": "string", + "enum": [ + "github" + ], + "title": "github" + }, + { + "type": "string", + "enum": [ + "gitlab" + ], + "title": "gitlab" + }, + { + "type": "string", + "enum": [ + "google" + ], + "title": "google" + }, + { + "type": "string", + "enum": [ + "huggingface" + ], + "title": "huggingface" + }, + { + "type": "string", + "enum": [ + "keycloak" + ], + "title": "keycloak" + }, + { + "type": "string", + "enum": [ + "kick" + ], + "title": "kick" + }, + { + "type": "string", + "enum": [ + "linkedin" + ], + "title": "linkedin" + }, + { + "type": "string", + "enum": [ + "microsoft" + ], + "title": "microsoft" + }, + { + "type": "string", + "enum": [ + "notion" + ], + "title": "notion" + }, + { + "type": "string", + "enum": [ + "oidc" + ], + "title": "oidc" + }, + { + "type": "string", + "enum": [ + "okta" + ], + "title": "okta" + }, + { + "type": "string", + "enum": [ + "paypal" + ], + "title": "paypal" + }, + { + "type": "string", + "enum": [ + "paypalSandbox" + ], + "title": "paypalSandbox" + }, + { + "type": "string", + "enum": [ + "podio" + ], + "title": "podio" + }, + { + "type": "string", + "enum": [ + "resend" + ], + "title": "resend" + }, + { + "type": "string", + "enum": [ + "salesforce" + ], + "title": "salesforce" + }, + { + "type": "string", + "enum": [ + "slack" + ], + "title": "slack" + }, + { + "type": "string", + "enum": [ + "spotify" + ], + "title": "spotify" + }, + { + "type": "string", + "enum": [ + "stripe" + ], + "title": "stripe" + }, + { + "type": "string", + "enum": [ + "tradeshift" + ], + "title": "tradeshift" + }, + { + "type": "string", + "enum": [ + "tradeshiftBox" + ], + "title": "tradeshiftBox" + }, + { + "type": "string", + "enum": [ + "twitch" + ], + "title": "twitch" + }, + { + "type": "string", + "enum": [ + "wordpress" + ], + "title": "wordpress" + }, + { + "type": "string", + "enum": [ + "x" + ], + "title": "x" + }, + { + "type": "string", + "enum": [ + "yahoo" + ], + "title": "yahoo" + }, + { + "type": "string", + "enum": [ + "yammer" + ], + "title": "yammer" + }, + { + "type": "string", + "enum": [ + "yandex" + ], + "title": "yandex" + }, + { + "type": "string", + "enum": [ + "zoho" + ], + "title": "zoho" + }, + { + "type": "string", + "enum": [ + "zoom" + ], + "title": "zoom" + } + ] + }, + "in": "path" + }, + { + "name": "success", + "description": "URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "failure", + "description": "URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "scopes", + "description": "A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes. Maximum of 100 scopes are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/account\/sessions\/phone": { + "put": { + "summary": "Update phone session", + "operationId": "accountUpdatePhoneSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "sessions", + "demo": "account\/update-phone-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.6.0", + "replaceWith": "account.createSession" + }, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/sessions\/token": { + "post": { + "summary": "Create session", + "operationId": "accountCreateSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "secret": { + "description": "Secret of a token generated by login methods. For example, the `createMagicURLToken` or `createPhoneToken` methods.", + "type": "string", + "example": "" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/sessions\/{sessionId}": { + "get": { + "summary": "Get session", + "operationId": "accountGetSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.", + "responses": { + "200": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/get-session.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "sessionId", + "description": "Session ID. Use the string 'current' to get the current device session.", + "required": true, + "schema": { + "type": "string", + "example": "", + "default": "current" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update session", + "operationId": "accountUpdateSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to extend a session's length. Extending a session is useful when session expiry is short. If the session was created using an OAuth provider, this endpoint refreshes the access token from the provider.", + "responses": { + "200": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/update-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "sessionId", + "description": "Session ID. Use the string 'current' to update the current device session.", + "required": true, + "schema": { + "type": "string", + "example": "", + "default": "current" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete session", + "operationId": "accountDeleteSession", + "tags": [ + "account" + ], + "description": "Logout the user. Use 'current' as the session ID to logout on this device, use a session ID to logout on another device. If you're looking to logout the user on all devices, use [Delete Sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#deleteSessions) instead.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/delete-session.md", + "rate-limit": 100, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "sessionId", + "description": "Session ID. Use the string 'current' to delete the current device session.", + "required": true, + "schema": { + "type": "string", + "example": "", + "default": "current" + }, + "in": "path" + } + ] + } + }, + "\/account\/status": { + "patch": { + "summary": "Update status", + "operationId": "accountUpdateStatus", + "tags": [ + "account" + ], + "description": "Block the currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. To completely delete a user, use the Users API instead.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/targets\/push": { + "post": { + "summary": "Create push target", + "operationId": "accountCreatePushTarget", + "tags": [ + "account" + ], + "description": "Use this endpoint to register a device for push notifications. Provide a target ID (custom or generated using ID.unique()), a device identifier (usually a device token), and optionally specify which provider should send notifications to this target. The target is automatically linked to the current session and includes device information like brand and model.", + "responses": { + "201": { + "description": "Target", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/target" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pushTargets", + "demo": "account\/create-push-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.write", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetId": { + "description": "Target ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "identifier": { + "description": "The target identifier (token, email, phone etc.)", + "type": "string", + "example": "" + }, + "providerId": { + "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "targetId", + "identifier" + ] + } + } + } + } + } + }, + "\/account\/targets\/{targetId}\/push": { + "put": { + "summary": "Update push target", + "operationId": "accountUpdatePushTarget", + "tags": [ + "account" + ], + "description": "Update the currently logged in user's push notification target. You can modify the target's identifier (device token) and provider ID (token, email, phone etc.). The target must exist and belong to the current user. If you change the provider ID, notifications will be sent through the new messaging provider instead.", + "responses": { + "200": { + "description": "Target", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/target" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pushTargets", + "demo": "account\/update-push-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.write", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "identifier": { + "description": "The target identifier (token, email, phone etc.)", + "type": "string", + "example": "" + } + }, + "required": [ + "identifier" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete push target", + "operationId": "accountDeletePushTarget", + "tags": [ + "account" + ], + "description": "Delete a push notification target for the currently logged in user. After deletion, the device will no longer receive push notifications. The target must exist and belong to the current user.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pushTargets", + "demo": "account\/delete-push-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.write", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/account\/tokens\/email": { + "post": { + "summary": "Create email token (OTP)", + "operationId": "accountCreateEmailToken", + "tags": [ + "account" + ], + "description": "Sends the user an email with a secret key for creating a session. If the email address has never been used, a **new account is created** using the provided `userId`. Otherwise, if the email address is already attached to an account, the **user ID is ignored**. Then, the user will receive an email with the one-time password. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-email-token.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", + "type": "string", + "example": "", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "userId", + "email" + ] + } + } + } + } + } + }, + "\/account\/tokens\/magic-url": { + "post": { + "summary": "Create magic URL token", + "operationId": "accountCreateMagicURLToken", + "tags": [ + "account" + ], + "description": "Sends the user an email with a secret key for creating a session. If the provided user ID has not been registered, a new user will be created. When the user clicks the link in the email, the user is redirected back to the URL you provided with the secret key and userId values attached to the URL query string. Use the query string parameters to submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The link sent to the user's email address is valid for 1 hour.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-magic-url-token.md", + "rate-limit": 60, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", + "type": "string", + "example": "", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "url": { + "description": "URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "userId", + "email" + ] + } + } + } + } + } + }, + "\/account\/tokens\/oauth2\/{provider}": { + "get": { + "summary": "Create OAuth2 token", + "operationId": "accountCreateOAuth2Token", + "tags": [ + "account" + ], + "description": "Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed. \n\nIf authentication succeeds, `userId` and `secret` of a token will be appended to the success URL as query parameters. These can be used to create a new session using the [Create session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", + "responses": { + "301": { + "description": "No content", + "content": { + "text\/html": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-o-auth-2-token.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "provider", + "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, cloudflare, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, huggingface, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, resend, salesforce, slack, spotify, stripe, tradeshift, tradeshiftBox, twitch, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", + "required": true, + "schema": { + "type": "string", + "example": "amazon", + "title": "OAuthProvider", + "oneOf": [ + { + "type": "string", + "enum": [ + "amazon" + ], + "title": "amazon" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "appwrite" + ], + "title": "appwrite" + }, + { + "type": "string", + "enum": [ + "auth0" + ], + "title": "auth0" + }, + { + "type": "string", + "enum": [ + "authentik" + ], + "title": "authentik" + }, + { + "type": "string", + "enum": [ + "autodesk" + ], + "title": "autodesk" + }, + { + "type": "string", + "enum": [ + "bitbucket" + ], + "title": "bitbucket" + }, + { + "type": "string", + "enum": [ + "bitly" + ], + "title": "bitly" + }, + { + "type": "string", + "enum": [ + "box" + ], + "title": "box" + }, + { + "type": "string", + "enum": [ + "cloudflare" + ], + "title": "cloudflare" + }, + { + "type": "string", + "enum": [ + "dailymotion" + ], + "title": "dailymotion" + }, + { + "type": "string", + "enum": [ + "discord" + ], + "title": "discord" + }, + { + "type": "string", + "enum": [ + "disqus" + ], + "title": "disqus" + }, + { + "type": "string", + "enum": [ + "dropbox" + ], + "title": "dropbox" + }, + { + "type": "string", + "enum": [ + "etsy" + ], + "title": "etsy" + }, + { + "type": "string", + "enum": [ + "facebook" + ], + "title": "facebook" + }, + { + "type": "string", + "enum": [ + "figma" + ], + "title": "figma" + }, + { + "type": "string", + "enum": [ + "fusionauth" + ], + "title": "fusionauth" + }, + { + "type": "string", + "enum": [ + "github" + ], + "title": "github" + }, + { + "type": "string", + "enum": [ + "gitlab" + ], + "title": "gitlab" + }, + { + "type": "string", + "enum": [ + "google" + ], + "title": "google" + }, + { + "type": "string", + "enum": [ + "huggingface" + ], + "title": "huggingface" + }, + { + "type": "string", + "enum": [ + "keycloak" + ], + "title": "keycloak" + }, + { + "type": "string", + "enum": [ + "kick" + ], + "title": "kick" + }, + { + "type": "string", + "enum": [ + "linkedin" + ], + "title": "linkedin" + }, + { + "type": "string", + "enum": [ + "microsoft" + ], + "title": "microsoft" + }, + { + "type": "string", + "enum": [ + "notion" + ], + "title": "notion" + }, + { + "type": "string", + "enum": [ + "oidc" + ], + "title": "oidc" + }, + { + "type": "string", + "enum": [ + "okta" + ], + "title": "okta" + }, + { + "type": "string", + "enum": [ + "paypal" + ], + "title": "paypal" + }, + { + "type": "string", + "enum": [ + "paypalSandbox" + ], + "title": "paypalSandbox" + }, + { + "type": "string", + "enum": [ + "podio" + ], + "title": "podio" + }, + { + "type": "string", + "enum": [ + "resend" + ], + "title": "resend" + }, + { + "type": "string", + "enum": [ + "salesforce" + ], + "title": "salesforce" + }, + { + "type": "string", + "enum": [ + "slack" + ], + "title": "slack" + }, + { + "type": "string", + "enum": [ + "spotify" + ], + "title": "spotify" + }, + { + "type": "string", + "enum": [ + "stripe" + ], + "title": "stripe" + }, + { + "type": "string", + "enum": [ + "tradeshift" + ], + "title": "tradeshift" + }, + { + "type": "string", + "enum": [ + "tradeshiftBox" + ], + "title": "tradeshiftBox" + }, + { + "type": "string", + "enum": [ + "twitch" + ], + "title": "twitch" + }, + { + "type": "string", + "enum": [ + "wordpress" + ], + "title": "wordpress" + }, + { + "type": "string", + "enum": [ + "x" + ], + "title": "x" + }, + { + "type": "string", + "enum": [ + "yahoo" + ], + "title": "yahoo" + }, + { + "type": "string", + "enum": [ + "yammer" + ], + "title": "yammer" + }, + { + "type": "string", + "enum": [ + "yandex" + ], + "title": "yandex" + }, + { + "type": "string", + "enum": [ + "zoho" + ], + "title": "zoho" + }, + { + "type": "string", + "enum": [ + "zoom" + ], + "title": "zoom" + } + ] + }, + "in": "path" + }, + { + "name": "success", + "description": "URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "failure", + "description": "URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "scopes", + "description": "A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes. Maximum of 100 scopes are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/account\/tokens\/phone": { + "post": { + "summary": "Create phone token", + "operationId": "accountCreatePhoneToken", + "tags": [ + "account" + ], + "description": "Sends the user an SMS with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's phone is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-phone-token.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},phone:{param-phone}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.", + "type": "string", + "example": "", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "example": "+12065550100", + "format": "phone" + } + }, + "required": [ + "userId", + "phone" + ] + } + } + } + } + } + }, + "\/account\/verifications\/email": { + "post": { + "summary": "Create email verification", + "operationId": "accountCreateEmailVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/create-email-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createEmailVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [ + "url" + ], + "required": [ + "url" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", + "demo": "account\/create-email-verification.md", + "public": true + }, + { + "name": "createVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [ + "url" + ], + "required": [ + "url" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", + "demo": "account\/create-verification.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createEmailVerification" + } + } + ], + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "url": { + "description": "URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + } + }, + "required": [ + "url" + ] + } + } + } + } + }, + "put": { + "summary": "Update email verification (confirmation)", + "operationId": "accountUpdateEmailVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/update-email-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "updateEmailVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [ + "userId", + "secret" + ], + "required": [ + "userId", + "secret" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", + "demo": "account\/update-email-verification.md", + "public": true + }, + { + "name": "updateVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [ + "userId", + "secret" + ], + "required": [ + "userId", + "secret" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", + "demo": "account\/update-verification.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateEmailVerification" + } + } + ], + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/verifications\/phone": { + "post": { + "summary": "Create phone verification", + "operationId": "accountCreatePhoneVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a verification SMS to the currently logged in user. This endpoint is meant for use after updating a user's phone number using the [accountUpdatePhone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhone) endpoint. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhoneVerification). The verification code sent to the user's phone number is valid for 15 minutes.", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/create-phone-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},userId:{userId}", + "url:{url},ip:{ip}" + ], + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "put": { + "summary": "Update phone verification (confirmation)", + "operationId": "accountUpdatePhoneVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user phone verification process. Use the **userId** and **secret** that were sent to your user's phone number to verify the user email ownership. If confirmed this route will return a 200 status code.", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/update-phone-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "userId:{param-userId}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/activities\/events": { + "get": { + "summary": "List events", + "operationId": "activitiesListEvents", + "tags": [ + "activities" + ], + "description": "List all events for selected filters.", + "responses": { + "200": { + "description": "Activity event list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/activityEventList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "activities\/list-events.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "events.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on attributes such as userId, teamId, etc.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/activities\/events\/{eventId}": { + "get": { + "summary": "Get event", + "operationId": "activitiesGetEvent", + "tags": [ + "activities" + ], + "description": "Get event by ID.\n", + "responses": { + "200": { + "description": "ActivityEvent", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/activityEvent" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "events", + "demo": "activities\/get-event.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "events.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "eventId", + "description": "Event ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/affiliates\/links": { + "get": { + "summary": "List affiliate links", + "operationId": "affiliatesListLinks", + "tags": [ + "affiliates" + ], + "description": "List affiliate links for the current account.\n", + "responses": { + "200": { + "description": "Affiliate links list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/affiliateLinkList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "links", + "demo": "affiliates\/list-links.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, status", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create affiliate link", + "operationId": "affiliatesCreateLink", + "tags": [ + "affiliates" + ], + "description": "Create a shareable affiliate link for the current account. Every console user is automatically in the affiliates program.\n", + "responses": { + "201": { + "description": "AffiliateLink", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/affiliateLink" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "links", + "demo": "affiliates\/create-link.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "linkId": { + "description": "Link ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. This ID is the shareable referral code.", + "type": "string", + "example": "", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "description": "Link name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "linkId" + ] + } + } + } + } + } + }, + "\/affiliates\/links\/{linkId}": { + "get": { + "summary": "Get affiliate link", + "operationId": "affiliatesGetLink", + "tags": [ + "affiliates" + ], + "description": "Get a single affiliate link owned by the current account.\n", + "responses": { + "200": { + "description": "AffiliateLink", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/affiliateLink" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "links", + "demo": "affiliates\/get-link.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "linkId", + "description": "Link ID.", + "required": true, + "schema": { + "type": "string", + "x-appwrite": { + "idGenerator": "ID.unique" + }, + "example": "" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete affiliate link", + "operationId": "affiliatesDeleteLink", + "tags": [ + "affiliates" + ], + "description": "Delete an affiliate link owned by the current account. Existing referrals and rewards keep their stored link IDs for history.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "links", + "demo": "affiliates\/delete-link.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "linkId", + "description": "Link ID.", + "required": true, + "schema": { + "type": "string", + "x-appwrite": { + "idGenerator": "ID.unique" + }, + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/affiliates\/referrals": { + "get": { + "summary": "List affiliate referrals", + "operationId": "affiliatesListReferrals", + "tags": [ + "affiliates" + ], + "description": "List referrals attributed to the current account's affiliate links. Responses include privacy-safe metadata only (truncated user ID and signup country), never email or name. Referrals are created automatically on signup when the invite cookie is present.\n", + "responses": { + "200": { + "description": "Affiliate referrals list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/affiliateReferralList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "referrals", + "demo": "affiliates\/list-referrals.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: linkId, referredUserMaskedId, referredUserCountry, status, attributedAt, expiresAt, convertedAt", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/affiliates\/rewards": { + "get": { + "summary": "List affiliate rewards", + "operationId": "affiliatesListRewards", + "tags": [ + "affiliates" + ], + "description": "List rewards earned by the current account from affiliate link conversions.\n", + "responses": { + "200": { + "description": "Affiliate rewards list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/affiliateRewardList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rewards", + "demo": "affiliates\/list-rewards.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: linkId, referralId, amount, status, teamId, creditId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/affiliates\/rewards\/{rewardId}": { + "patch": { + "summary": "Update affiliate reward", + "operationId": "affiliatesUpdateReward", + "tags": [ + "affiliates" + ], + "description": "Claim a pending affiliate reward by setting its status to `claimed`. Creates organization credits for the target organization. The current user must be an owner of that organization.\n", + "responses": { + "200": { + "description": "AffiliateReward", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/affiliateReward" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rewards", + "demo": "affiliates\/update-reward.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "rewardId", + "description": "Reward ID", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "description": "New reward status. Use `claimed` to claim the reward as organization credits.", + "type": "string", + "example": "claimed" + }, + "organizationId": { + "description": "Organization ID to apply credits to when claiming.", + "type": "string", + "example": "" + } + }, + "required": [ + "status", + "organizationId" + ] + } + } + } + } + } + }, + "\/apps": { + "get": { + "summary": "List Applications", + "operationId": "appsList", + "tags": [ + "apps" + ], + "description": "List applications.", + "responses": { + "200": { + "description": "Apps list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/list.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Application", + "operationId": "appsCreate", + "tags": [ + "apps" + ], + "description": "Create a new application.", + "responses": { + "201": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/create.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "description": "Application ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "description": "Application name.", + "type": "string", + "example": "" + }, + "description": { + "description": "Application description shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "" + }, + "clientUri": { + "description": "Application homepage URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "logoUri": { + "description": "Application logo URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "privacyPolicyUrl": { + "description": "Application privacy policy URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "termsUrl": { + "description": "Application terms of service URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "contacts": { + "description": "Application support or security contact emails. Maximum of 100 contacts are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "tagline": { + "description": "Application tagline shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "" + }, + "tags": { + "description": "Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "images": { + "description": "Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "supportUrl": { + "description": "Application support URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "dataDeletionUrl": { + "description": "Application data deletion URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "redirectUris": { + "description": "Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:\/oauth), and must not contain a fragment.", + "type": "array", + "items": { + "type": "string" + } + }, + "postLogoutRedirectUris": { + "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "enabled": { + "description": "Is application enabled?", + "type": "boolean", + "default": true, + "example": false + }, + "type": { + "description": "OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` \u2014 PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.", + "type": "string", + "default": "confidential", + "example": "public" + }, + "deviceFlow": { + "description": "Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.", + "type": "boolean", + "default": false, + "example": false + }, + "teamId": { + "description": "Team unique ID.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "appId", + "name", + "redirectUris" + ] + } + } + } + } + } + }, + "\/apps\/scopes\/installations": { + "get": { + "summary": "List Installation Scopes", + "operationId": "appsListInstallationScopes", + "tags": [ + "apps" + ], + "description": "List scopes an application can request when installed on a team.", + "responses": { + "200": { + "description": "App scopes list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appScopeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "scopes", + "demo": "apps\/list-installation-scopes.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/apps\/scopes\/oauth2": { + "get": { + "summary": "List OAuth2 Scopes", + "operationId": "appsListOAuth2Scopes", + "tags": [ + "apps" + ], + "description": "List scopes an application can request during the OAuth2 flow.", + "responses": { + "200": { + "description": "App scopes list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appScopeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "scopes", + "demo": "apps\/list-o-auth-2-scopes.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/apps\/{appId}": { + "get": { + "summary": "Get Application", + "operationId": "appsGet", + "tags": [ + "apps" + ], + "description": "Get an application by its unique ID.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/get.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update Application", + "operationId": "appsUpdate", + "tags": [ + "apps" + ], + "description": "Update an application by its unique ID.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/update.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Application name.", + "type": "string", + "example": "" + }, + "description": { + "description": "Application description shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "" + }, + "clientUri": { + "description": "Application homepage URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "logoUri": { + "description": "Application logo URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "privacyPolicyUrl": { + "description": "Application privacy policy URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "termsUrl": { + "description": "Application terms of service URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "contacts": { + "description": "Application support or security contact emails. Maximum of 100 contacts are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "tagline": { + "description": "Application tagline shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "" + }, + "tags": { + "description": "Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "images": { + "description": "Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "supportUrl": { + "description": "Application support URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "dataDeletionUrl": { + "description": "Application data deletion URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "enabled": { + "description": "Is application enabled?", + "type": "boolean", + "default": true, + "example": false + }, + "redirectUris": { + "description": "Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:\/oauth), and must not contain a fragment.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "postLogoutRedirectUris": { + "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "type": { + "description": "OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` \u2014 PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.", + "type": "string", + "default": "confidential", + "example": "public" + }, + "deviceFlow": { + "description": "Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.", + "type": "boolean", + "default": false, + "example": false + }, + "installationScopes": { + "description": "Scopes the application requests when installed on a team. Only scopes allowed by the project's OAuth2 server installation scopes configuration are accepted; use the list installation scopes endpoint to discover available values. Maximum of 100 scopes are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "installationRedirectUrl": { + "description": "URL users are redirected to after creating or updating an installation of this application. Must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI, and must not contain a fragment. Leave empty for no redirect.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete Application", + "operationId": "appsDelete", + "tags": [ + "apps" + ], + "description": "Delete an application by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/delete.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/installations": { + "get": { + "summary": "List Installations", + "operationId": "appsListInstallations", + "tags": [ + "apps" + ], + "description": "List installations of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.", + "responses": { + "200": { + "description": "App installations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/list-installations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip}", + "scope": [ + "apps.read", + "apps.installations.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/apps\/{appId}\/installations\/{installationId}": { + "get": { + "summary": "Get Installation", + "operationId": "appsGetInstallation", + "tags": [ + "apps" + ], + "description": "Get an installation of an application by its unique ID. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/get-installation.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip}", + "scope": [ + "apps.read", + "apps.installations.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete Installation", + "operationId": "appsDeleteInstallation", + "tags": [ + "apps" + ], + "description": "Delete an installation of an application by its unique ID. Requires a caller with update access to the app. Previously issued installation access tokens are revoked.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/delete-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/installations\/{installationId}\/tokens": { + "post": { + "summary": "Create Installation Token", + "operationId": "appsCreateInstallationToken", + "tags": [ + "apps" + ], + "description": "Create a token for an installation of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app. The returned token carries the scopes and authorization details granted to the installation, and can be used as an `Authorization: Bearer` header everywhere OAuth2 access tokens are accepted. Multiple tokens can be active for the same installation at once; each token stays valid until it expires or the installation is updated or deleted.", + "responses": { + "201": { + "description": "OAuth2 Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/create-installation-token.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip}", + "scope": [ + "apps.write", + "apps.tokens.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/keys": { + "get": { + "summary": "List App Keys", + "operationId": "appsListKeys", + "tags": [ + "apps" + ], + "description": "List app keys for an application.", + "responses": { + "200": { + "description": "App keys list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appKeyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/list-keys.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create App Key", + "operationId": "appsCreateKey", + "tags": [ + "apps" + ], + "description": "Create a new app key for an application. App keys carry no scopes; send one in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header to list the application's installations and create installation access tokens.", + "responses": { + "201": { + "description": "AppKey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/create-key.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/keys\/{keyId}": { + "get": { + "summary": "Get App Key", + "operationId": "appsGetKey", + "tags": [ + "apps" + ], + "description": "Get an app key by its unique ID.", + "responses": { + "200": { + "description": "AppKey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/get-key.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "App key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete App Key", + "operationId": "appsDeleteKey", + "tags": [ + "apps" + ], + "description": "Delete an app key by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/delete-key.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "App key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/labels": { + "put": { + "summary": "Update Application Labels", + "operationId": "appsUpdateLabels", + "tags": [ + "apps" + ], + "description": "Update the labels of an application. Labels are read-only for clients; only a server SDK using a project API key can set them. Replaces the previous labels.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/update-labels.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "labels": { + "description": "Array of application labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + } + } + } + } + } + }, + "\/apps\/{appId}\/secrets": { + "get": { + "summary": "List Secrets", + "operationId": "appsListSecrets", + "tags": [ + "apps" + ], + "description": "List client secrets for an application.", + "responses": { + "200": { + "description": "App secrets list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appSecretList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/list-secrets.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Secret", + "operationId": "appsCreateSecret", + "tags": [ + "apps" + ], + "description": "Create a new client secret for an application.", + "responses": { + "201": { + "description": "AppSecretPlaintext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appSecretPlaintext" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/create-secret.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/secrets\/{secretId}": { + "get": { + "summary": "Get Secret", + "operationId": "appsGetSecret", + "tags": [ + "apps" + ], + "description": "Get an application client secret by its unique ID.", + "responses": { + "200": { + "description": "AppSecret", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appSecret" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/get-secret.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "secretId", + "description": "Secret unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete Secret", + "operationId": "appsDeleteSecret", + "tags": [ + "apps" + ], + "description": "Delete an application client secret by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/delete-secret.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "secretId", + "description": "Secret unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/team": { + "patch": { + "summary": "Update Team", + "operationId": "appsUpdateTeam", + "tags": [ + "apps" + ], + "description": "Transfer an application to another team by its unique ID.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/update-team.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "Team ID of the team to transfer application to.", + "type": "string", + "example": "" + } + }, + "required": [ + "teamId" + ] + } + } + } + } + } + }, + "\/apps\/{appId}\/tokens": { + "delete": { + "summary": "Delete Tokens", + "operationId": "appsDeleteTokens", + "tags": [ + "apps" + ], + "description": "Revoke all tokens for an application by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/delete-tokens.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/avatars\/browsers\/{code}": { + "get": { + "summary": "Get browser icon", + "operationId": "avatarsGetBrowser", + "tags": [ + "avatars" + ], + "description": "You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user [GET \/account\/sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getSessions) endpoint. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-browser.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [], + "ImpersonateUserId": [] + }, + "client": { + "Project": [], + "ImpersonateUserId": [] + }, + "server": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "code", + "description": "Browser Code.", + "required": true, + "schema": { + "type": "string", + "example": "aa", + "title": "Browser", + "oneOf": [ + { + "type": "string", + "enum": [ + "aa" + ], + "title": "Avant Browser" + }, + { + "type": "string", + "enum": [ + "an" + ], + "title": "Android WebView Beta" + }, + { + "type": "string", + "enum": [ + "ch" + ], + "title": "Google Chrome" + }, + { + "type": "string", + "enum": [ + "ci" + ], + "title": "Google Chrome (iOS)" + }, + { + "type": "string", + "enum": [ + "cm" + ], + "title": "Google Chrome (Mobile)" + }, + { + "type": "string", + "enum": [ + "cr" + ], + "title": "Chromium" + }, + { + "type": "string", + "enum": [ + "ff" + ], + "title": "Mozilla Firefox" + }, + { + "type": "string", + "enum": [ + "sf" + ], + "title": "Safari" + }, + { + "type": "string", + "enum": [ + "mf" + ], + "title": "Mobile Safari" + }, + { + "type": "string", + "enum": [ + "ps" + ], + "title": "Microsoft Edge" + }, + { + "type": "string", + "enum": [ + "oi" + ], + "title": "Microsoft Edge (iOS)" + }, + { + "type": "string", + "enum": [ + "om" + ], + "title": "Opera Mini" + }, + { + "type": "string", + "enum": [ + "op" + ], + "title": "Opera" + }, + { + "type": "string", + "enum": [ + "on" + ], + "title": "Opera (Next)" + } + ] + }, + "in": "path" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/credit-cards\/{code}": { + "get": { + "summary": "Get credit card icon", + "operationId": "avatarsGetCreditCard", + "tags": [ + "avatars" + ], + "description": "The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-credit-card.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [], + "ImpersonateUserId": [] + }, + "client": { + "Project": [], + "ImpersonateUserId": [] + }, + "server": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "code", + "description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.", + "required": true, + "schema": { + "type": "string", + "example": "amex", + "title": "CreditCard", + "oneOf": [ + { + "type": "string", + "enum": [ + "amex" + ], + "title": "American Express" + }, + { + "type": "string", + "enum": [ + "argencard" + ], + "title": "Argencard" + }, + { + "type": "string", + "enum": [ + "cabal" + ], + "title": "Cabal" + }, + { + "type": "string", + "enum": [ + "cencosud" + ], + "title": "Cencosud" + }, + { + "type": "string", + "enum": [ + "diners" + ], + "title": "Diners Club" + }, + { + "type": "string", + "enum": [ + "discover" + ], + "title": "Discover" + }, + { + "type": "string", + "enum": [ + "elo" + ], + "title": "Elo" + }, + { + "type": "string", + "enum": [ + "hipercard" + ], + "title": "Hipercard" + }, + { + "type": "string", + "enum": [ + "jcb" + ], + "title": "JCB" + }, + { + "type": "string", + "enum": [ + "mastercard" + ], + "title": "Mastercard" + }, + { + "type": "string", + "enum": [ + "naranja" + ], + "title": "Naranja" + }, + { + "type": "string", + "enum": [ + "targeta-shopping" + ], + "title": "Tarjeta Shopping" + }, + { + "type": "string", + "enum": [ + "unionpay" + ], + "title": "Union Pay" + }, + { + "type": "string", + "enum": [ + "visa" + ], + "title": "Visa" + }, + { + "type": "string", + "enum": [ + "mir" + ], + "title": "MIR" + }, + { + "type": "string", + "enum": [ + "maestro" + ], + "title": "Maestro" + }, + { + "type": "string", + "enum": [ + "rupay" + ], + "title": "Rupay" + } + ] + }, + "in": "path" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/favicon": { + "get": { + "summary": "Get favicon", + "operationId": "avatarsGetFavicon", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n\nThis endpoint does not follow HTTP redirects.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-favicon.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [], + "ImpersonateUserId": [] + }, + "client": { + "Project": [], + "ImpersonateUserId": [] + }, + "server": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "url", + "description": "Website URL which you want to fetch the favicon from.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + } + ] + } + }, + "\/avatars\/flags\/{code}": { + "get": { + "summary": "Get country flag", + "operationId": "avatarsGetFlag", + "tags": [ + "avatars" + ], + "description": "You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings. Country codes follow the [ISO 3166-1](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) standard.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-flag.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [], + "ImpersonateUserId": [] + }, + "client": { + "Project": [], + "ImpersonateUserId": [] + }, + "server": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "code", + "description": "Country Code. ISO Alpha-2 country code format.", + "required": true, + "schema": { + "type": "string", + "example": "af", + "title": "Flag", + "oneOf": [ + { + "type": "string", + "enum": [ + "af" + ], + "title": "Afghanistan" + }, + { + "type": "string", + "enum": [ + "ao" + ], + "title": "Angola" + }, + { + "type": "string", + "enum": [ + "al" + ], + "title": "Albania" + }, + { + "type": "string", + "enum": [ + "ad" + ], + "title": "Andorra" + }, + { + "type": "string", + "enum": [ + "ae" + ], + "title": "United Arab Emirates" + }, + { + "type": "string", + "enum": [ + "ar" + ], + "title": "Argentina" + }, + { + "type": "string", + "enum": [ + "am" + ], + "title": "Armenia" + }, + { + "type": "string", + "enum": [ + "ag" + ], + "title": "Antigua and Barbuda" + }, + { + "type": "string", + "enum": [ + "au" + ], + "title": "Australia" + }, + { + "type": "string", + "enum": [ + "at" + ], + "title": "Austria" + }, + { + "type": "string", + "enum": [ + "az" + ], + "title": "Azerbaijan" + }, + { + "type": "string", + "enum": [ + "bi" + ], + "title": "Burundi" + }, + { + "type": "string", + "enum": [ + "be" + ], + "title": "Belgium" + }, + { + "type": "string", + "enum": [ + "bj" + ], + "title": "Benin" + }, + { + "type": "string", + "enum": [ + "bf" + ], + "title": "Burkina Faso" + }, + { + "type": "string", + "enum": [ + "bd" + ], + "title": "Bangladesh" + }, + { + "type": "string", + "enum": [ + "bg" + ], + "title": "Bulgaria" + }, + { + "type": "string", + "enum": [ + "bh" + ], + "title": "Bahrain" + }, + { + "type": "string", + "enum": [ + "bs" + ], + "title": "Bahamas" + }, + { + "type": "string", + "enum": [ + "ba" + ], + "title": "Bosnia and Herzegovina" + }, + { + "type": "string", + "enum": [ + "by" + ], + "title": "Belarus" + }, + { + "type": "string", + "enum": [ + "bz" + ], + "title": "Belize" + }, + { + "type": "string", + "enum": [ + "bo" + ], + "title": "Bolivia" + }, + { + "type": "string", + "enum": [ + "br" + ], + "title": "Brazil" + }, + { + "type": "string", + "enum": [ + "bb" + ], + "title": "Barbados" + }, + { + "type": "string", + "enum": [ + "bn" + ], + "title": "Brunei Darussalam" + }, + { + "type": "string", + "enum": [ + "bt" + ], + "title": "Bhutan" + }, + { + "type": "string", + "enum": [ + "bw" + ], + "title": "Botswana" + }, + { + "type": "string", + "enum": [ + "cf" + ], + "title": "Central African Republic" + }, + { + "type": "string", + "enum": [ + "ca" + ], + "title": "Canada" + }, + { + "type": "string", + "enum": [ + "ch" + ], + "title": "Switzerland" + }, + { + "type": "string", + "enum": [ + "cl" + ], + "title": "Chile" + }, + { + "type": "string", + "enum": [ + "cn" + ], + "title": "China" + }, + { + "type": "string", + "enum": [ + "ci" + ], + "title": "C\u00f4te d'Ivoire" + }, + { + "type": "string", + "enum": [ + "cm" + ], + "title": "Cameroon" + }, + { + "type": "string", + "enum": [ + "cd" + ], + "title": "Democratic Republic of the Congo" + }, + { + "type": "string", + "enum": [ + "cg" + ], + "title": "Republic of the Congo" + }, + { + "type": "string", + "enum": [ + "co" + ], + "title": "Colombia" + }, + { + "type": "string", + "enum": [ + "km" + ], + "title": "Comoros" + }, + { + "type": "string", + "enum": [ + "cv" + ], + "title": "Cape Verde" + }, + { + "type": "string", + "enum": [ + "cr" + ], + "title": "Costa Rica" + }, + { + "type": "string", + "enum": [ + "cu" + ], + "title": "Cuba" + }, + { + "type": "string", + "enum": [ + "cy" + ], + "title": "Cyprus" + }, + { + "type": "string", + "enum": [ + "cz" + ], + "title": "Czech Republic" + }, + { + "type": "string", + "enum": [ + "de" + ], + "title": "Germany" + }, + { + "type": "string", + "enum": [ + "dj" + ], + "title": "Djibouti" + }, + { + "type": "string", + "enum": [ + "dm" + ], + "title": "Dominica" + }, + { + "type": "string", + "enum": [ + "dk" + ], + "title": "Denmark" + }, + { + "type": "string", + "enum": [ + "do" + ], + "title": "Dominican Republic" + }, + { + "type": "string", + "enum": [ + "dz" + ], + "title": "Algeria" + }, + { + "type": "string", + "enum": [ + "ec" + ], + "title": "Ecuador" + }, + { + "type": "string", + "enum": [ + "eg" + ], + "title": "Egypt" + }, + { + "type": "string", + "enum": [ + "er" + ], + "title": "Eritrea" + }, + { + "type": "string", + "enum": [ + "es" + ], + "title": "Spain" + }, + { + "type": "string", + "enum": [ + "ee" + ], + "title": "Estonia" + }, + { + "type": "string", + "enum": [ + "et" + ], + "title": "Ethiopia" + }, + { + "type": "string", + "enum": [ + "fi" + ], + "title": "Finland" + }, + { + "type": "string", + "enum": [ + "fj" + ], + "title": "Fiji" + }, + { + "type": "string", + "enum": [ + "fr" + ], + "title": "France" + }, + { + "type": "string", + "enum": [ + "fm" + ], + "title": "Micronesia (Federated States of)" + }, + { + "type": "string", + "enum": [ + "ga" + ], + "title": "Gabon" + }, + { + "type": "string", + "enum": [ + "gb" + ], + "title": "United Kingdom" + }, + { + "type": "string", + "enum": [ + "ge" + ], + "title": "Georgia" + }, + { + "type": "string", + "enum": [ + "gh" + ], + "title": "Ghana" + }, + { + "type": "string", + "enum": [ + "gn" + ], + "title": "Guinea" + }, + { + "type": "string", + "enum": [ + "gm" + ], + "title": "Gambia" + }, + { + "type": "string", + "enum": [ + "gw" + ], + "title": "Guinea-Bissau" + }, + { + "type": "string", + "enum": [ + "gq" + ], + "title": "Equatorial Guinea" + }, + { + "type": "string", + "enum": [ + "gr" + ], + "title": "Greece" + }, + { + "type": "string", + "enum": [ + "gd" + ], + "title": "Grenada" + }, + { + "type": "string", + "enum": [ + "gt" + ], + "title": "Guatemala" + }, + { + "type": "string", + "enum": [ + "gy" + ], + "title": "Guyana" + }, + { + "type": "string", + "enum": [ + "hn" + ], + "title": "Honduras" + }, + { + "type": "string", + "enum": [ + "hr" + ], + "title": "Croatia" + }, + { + "type": "string", + "enum": [ + "ht" + ], + "title": "Haiti" + }, + { + "type": "string", + "enum": [ + "hu" + ], + "title": "Hungary" + }, + { + "type": "string", + "enum": [ + "id" + ], + "title": "Indonesia" + }, + { + "type": "string", + "enum": [ + "in" + ], + "title": "India" + }, + { + "type": "string", + "enum": [ + "ie" + ], + "title": "Ireland" + }, + { + "type": "string", + "enum": [ + "ir" + ], + "title": "Iran (Islamic Republic of)" + }, + { + "type": "string", + "enum": [ + "iq" + ], + "title": "Iraq" + }, + { + "type": "string", + "enum": [ + "is" + ], + "title": "Iceland" + }, + { + "type": "string", + "enum": [ + "il" + ], + "title": "Israel" + }, + { + "type": "string", + "enum": [ + "it" + ], + "title": "Italy" + }, + { + "type": "string", + "enum": [ + "jm" + ], + "title": "Jamaica" + }, + { + "type": "string", + "enum": [ + "jo" + ], + "title": "Jordan" + }, + { + "type": "string", + "enum": [ + "jp" + ], + "title": "Japan" + }, + { + "type": "string", + "enum": [ + "kz" + ], + "title": "Kazakhstan" + }, + { + "type": "string", + "enum": [ + "ke" + ], + "title": "Kenya" + }, + { + "type": "string", + "enum": [ + "kg" + ], + "title": "Kyrgyzstan" + }, + { + "type": "string", + "enum": [ + "kh" + ], + "title": "Cambodia" + }, + { + "type": "string", + "enum": [ + "ki" + ], + "title": "Kiribati" + }, + { + "type": "string", + "enum": [ + "kn" + ], + "title": "Saint Kitts and Nevis" + }, + { + "type": "string", + "enum": [ + "kr" + ], + "title": "South Korea" + }, + { + "type": "string", + "enum": [ + "kw" + ], + "title": "Kuwait" + }, + { + "type": "string", + "enum": [ + "la" + ], + "title": "Lao People's Democratic Republic" + }, + { + "type": "string", + "enum": [ + "lb" + ], + "title": "Lebanon" + }, + { + "type": "string", + "enum": [ + "lr" + ], + "title": "Liberia" + }, + { + "type": "string", + "enum": [ + "ly" + ], + "title": "Libya" + }, + { + "type": "string", + "enum": [ + "lc" + ], + "title": "Saint Lucia" + }, + { + "type": "string", + "enum": [ + "li" + ], + "title": "Liechtenstein" + }, + { + "type": "string", + "enum": [ + "lk" + ], + "title": "Sri Lanka" + }, + { + "type": "string", + "enum": [ + "ls" + ], + "title": "Lesotho" + }, + { + "type": "string", + "enum": [ + "lt" + ], + "title": "Lithuania" + }, + { + "type": "string", + "enum": [ + "lu" + ], + "title": "Luxembourg" + }, + { + "type": "string", + "enum": [ + "lv" + ], + "title": "Latvia" + }, + { + "type": "string", + "enum": [ + "ma" + ], + "title": "Morocco" + }, + { + "type": "string", + "enum": [ + "mc" + ], + "title": "Monaco" + }, + { + "type": "string", + "enum": [ + "md" + ], + "title": "Moldova" + }, + { + "type": "string", + "enum": [ + "mg" + ], + "title": "Madagascar" + }, + { + "type": "string", + "enum": [ + "mv" + ], + "title": "Maldives" + }, + { + "type": "string", + "enum": [ + "mx" + ], + "title": "Mexico" + }, + { + "type": "string", + "enum": [ + "mh" + ], + "title": "Marshall Islands" + }, + { + "type": "string", + "enum": [ + "mk" + ], + "title": "North Macedonia" + }, + { + "type": "string", + "enum": [ + "ml" + ], + "title": "Mali" + }, + { + "type": "string", + "enum": [ + "mt" + ], + "title": "Malta" + }, + { + "type": "string", + "enum": [ + "mm" + ], + "title": "Myanmar" + }, + { + "type": "string", + "enum": [ + "me" + ], + "title": "Montenegro" + }, + { + "type": "string", + "enum": [ + "mn" + ], + "title": "Mongolia" + }, + { + "type": "string", + "enum": [ + "mz" + ], + "title": "Mozambique" + }, + { + "type": "string", + "enum": [ + "mr" + ], + "title": "Mauritania" + }, + { + "type": "string", + "enum": [ + "mu" + ], + "title": "Mauritius" + }, + { + "type": "string", + "enum": [ + "mw" + ], + "title": "Malawi" + }, + { + "type": "string", + "enum": [ + "my" + ], + "title": "Malaysia" + }, + { + "type": "string", + "enum": [ + "na" + ], + "title": "Namibia" + }, + { + "type": "string", + "enum": [ + "ne" + ], + "title": "Niger" + }, + { + "type": "string", + "enum": [ + "ng" + ], + "title": "Nigeria" + }, + { + "type": "string", + "enum": [ + "ni" + ], + "title": "Nicaragua" + }, + { + "type": "string", + "enum": [ + "nl" + ], + "title": "Netherlands" + }, + { + "type": "string", + "enum": [ + "no" + ], + "title": "Norway" + }, + { + "type": "string", + "enum": [ + "np" + ], + "title": "Nepal" + }, + { + "type": "string", + "enum": [ + "nr" + ], + "title": "Nauru" + }, + { + "type": "string", + "enum": [ + "nz" + ], + "title": "New Zealand" + }, + { + "type": "string", + "enum": [ + "om" + ], + "title": "Oman" + }, + { + "type": "string", + "enum": [ + "pk" + ], + "title": "Pakistan" + }, + { + "type": "string", + "enum": [ + "pa" + ], + "title": "Panama" + }, + { + "type": "string", + "enum": [ + "pe" + ], + "title": "Peru" + }, + { + "type": "string", + "enum": [ + "ph" + ], + "title": "Philippines" + }, + { + "type": "string", + "enum": [ + "pw" + ], + "title": "Palau" + }, + { + "type": "string", + "enum": [ + "pg" + ], + "title": "Papua New Guinea" + }, + { + "type": "string", + "enum": [ + "pl" + ], + "title": "Poland" + }, + { + "type": "string", + "enum": [ + "pf" + ], + "title": "French Polynesia" + }, + { + "type": "string", + "enum": [ + "kp" + ], + "title": "North Korea" + }, + { + "type": "string", + "enum": [ + "pt" + ], + "title": "Portugal" + }, + { + "type": "string", + "enum": [ + "py" + ], + "title": "Paraguay" + }, + { + "type": "string", + "enum": [ + "qa" + ], + "title": "Qatar" + }, + { + "type": "string", + "enum": [ + "ro" + ], + "title": "Romania" + }, + { + "type": "string", + "enum": [ + "ru" + ], + "title": "Russia" + }, + { + "type": "string", + "enum": [ + "rw" + ], + "title": "Rwanda" + }, + { + "type": "string", + "enum": [ + "sa" + ], + "title": "Saudi Arabia" + }, + { + "type": "string", + "enum": [ + "sd" + ], + "title": "Sudan" + }, + { + "type": "string", + "enum": [ + "sn" + ], + "title": "Senegal" + }, + { + "type": "string", + "enum": [ + "sg" + ], + "title": "Singapore" + }, + { + "type": "string", + "enum": [ + "sb" + ], + "title": "Solomon Islands" + }, + { + "type": "string", + "enum": [ + "sl" + ], + "title": "Sierra Leone" + }, + { + "type": "string", + "enum": [ + "sv" + ], + "title": "El Salvador" + }, + { + "type": "string", + "enum": [ + "sm" + ], + "title": "San Marino" + }, + { + "type": "string", + "enum": [ + "so" + ], + "title": "Somalia" + }, + { + "type": "string", + "enum": [ + "rs" + ], + "title": "Serbia" + }, + { + "type": "string", + "enum": [ + "ss" + ], + "title": "South Sudan" + }, + { + "type": "string", + "enum": [ + "st" + ], + "title": "Sao Tome and Principe" + }, + { + "type": "string", + "enum": [ + "sr" + ], + "title": "Suriname" + }, + { + "type": "string", + "enum": [ + "sk" + ], + "title": "Slovakia" + }, + { + "type": "string", + "enum": [ + "si" + ], + "title": "Slovenia" + }, + { + "type": "string", + "enum": [ + "se" + ], + "title": "Sweden" + }, + { + "type": "string", + "enum": [ + "sz" + ], + "title": "Eswatini" + }, + { + "type": "string", + "enum": [ + "sc" + ], + "title": "Seychelles" + }, + { + "type": "string", + "enum": [ + "sy" + ], + "title": "Syria" + }, + { + "type": "string", + "enum": [ + "td" + ], + "title": "Chad" + }, + { + "type": "string", + "enum": [ + "tg" + ], + "title": "Togo" + }, + { + "type": "string", + "enum": [ + "th" + ], + "title": "Thailand" + }, + { + "type": "string", + "enum": [ + "tj" + ], + "title": "Tajikistan" + }, + { + "type": "string", + "enum": [ + "tm" + ], + "title": "Turkmenistan" + }, + { + "type": "string", + "enum": [ + "tl" + ], + "title": "Timor-Leste" + }, + { + "type": "string", + "enum": [ + "to" + ], + "title": "Tonga" + }, + { + "type": "string", + "enum": [ + "tt" + ], + "title": "Trinidad and Tobago" + }, + { + "type": "string", + "enum": [ + "tn" + ], + "title": "Tunisia" + }, + { + "type": "string", + "enum": [ + "tr" + ], + "title": "Turkey" + }, + { + "type": "string", + "enum": [ + "tv" + ], + "title": "Tuvalu" + }, + { + "type": "string", + "enum": [ + "tz" + ], + "title": "Tanzania" + }, + { + "type": "string", + "enum": [ + "ug" + ], + "title": "Uganda" + }, + { + "type": "string", + "enum": [ + "ua" + ], + "title": "Ukraine" + }, + { + "type": "string", + "enum": [ + "uy" + ], + "title": "Uruguay" + }, + { + "type": "string", + "enum": [ + "us" + ], + "title": "United States" + }, + { + "type": "string", + "enum": [ + "uz" + ], + "title": "Uzbekistan" + }, + { + "type": "string", + "enum": [ + "va" + ], + "title": "Vatican City" + }, + { + "type": "string", + "enum": [ + "vc" + ], + "title": "Saint Vincent and the Grenadines" + }, + { + "type": "string", + "enum": [ + "ve" + ], + "title": "Venezuela" + }, + { + "type": "string", + "enum": [ + "vn" + ], + "title": "Vietnam" + }, + { + "type": "string", + "enum": [ + "vu" + ], + "title": "Vanuatu" + }, + { + "type": "string", + "enum": [ + "ws" + ], + "title": "Samoa" + }, + { + "type": "string", + "enum": [ + "ye" + ], + "title": "Yemen" + }, + { + "type": "string", + "enum": [ + "za" + ], + "title": "South Africa" + }, + { + "type": "string", + "enum": [ + "zm" + ], + "title": "Zambia" + }, + { + "type": "string", + "enum": [ + "zw" + ], + "title": "Zimbabwe" + } + ] + }, + "in": "path" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/image": { + "get": { + "summary": "Get image from URL", + "operationId": "avatarsGetImage", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 400x400px.\n\nThis endpoint does not follow HTTP redirects.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-image.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [], + "ImpersonateUserId": [] + }, + "client": { + "Project": [], + "ImpersonateUserId": [] + }, + "server": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "url", + "description": "Image URL which you want to crop.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + }, + { + "name": "width", + "description": "Resize preview image width, Pass an integer between 0 to 2000. Defaults to 400.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 400 + }, + "in": "query" + }, + { + "name": "height", + "description": "Resize preview image height, Pass an integer between 0 to 2000. Defaults to 400.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 400 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/initials": { + "get": { + "summary": "Get user initials", + "operationId": "avatarsGetInitials", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-initials.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [], + "ImpersonateUserId": [] + }, + "client": { + "Project": [], + "ImpersonateUserId": [] + }, + "server": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "name", + "description": "Full Name. When empty, current user name or email will be used. Max length: 128 chars.", + "required": false, + "schema": { + "type": "string", + "example": "", + "default": "" + }, + "in": "query" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 500 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 500 + }, + "in": "query" + }, + { + "name": "background", + "description": "Changes background color. By default a random color will be picked and stay will persistent to the given name.", + "required": false, + "schema": { + "type": "string", + "example": "FFFFFF", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/avatars\/photo": { + "get": { + "summary": "Get user photo", + "operationId": "avatarsGetPhoto", + "tags": [ + "avatars" + ], + "description": "Returns the best available profile photo for a user. The endpoint tries each source in priority order and returns the first successful result: OAuth2 identity photo, Gravatar, Libravatar, Appwrite Initials, built-in static fallback.\n\nPassing `userId` \u2014 `current()` for the authenticated user \u2014 resolves the photo from everything known about that user: identity photos, email, and name. An explicit `emailHash` or `name` then overrides just that value, and the user's remaining sources stay in the chain. Without `userId`, passing `emailHash` and\/or `name` resolves the avatar from those values alone: the hash is looked up on Gravatar and Libravatar, the name is rendered as initials, and the session user stays out of the chain so their own photo never shadows the avatar being asked for. When nothing is passed, the photo resolves for the currently authenticated user. Emails are only ever accepted pre-hashed, so no address ends up in a URL.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-photo.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [], + "ImpersonateUserId": [] + }, + "client": { + "Project": [], + "ImpersonateUserId": [] + }, + "server": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "width", + "description": "Output image width in pixels. Pass an integer between 0 and 2000. Defaults to 256.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 256 + }, + "in": "query" + }, + { + "name": "height", + "description": "Output image height in pixels. Pass an integer between 0 and 2000. Defaults to 256.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 256 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Output image quality between 0 and 100. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "output", + "description": "Output image format. Defaults to 'png'.", + "required": false, + "schema": { + "type": "string", + "example": "png", + "default": "png" + }, + "in": "query" + }, + { + "name": "rating", + "description": "Maximum image rating to fetch from Gravatar\/Libravatar. Defaults to 'g'.", + "required": false, + "schema": { + "type": "string", + "example": "g", + "default": "g" + }, + "in": "query" + }, + { + "name": "userId", + "description": "User ID to resolve the photo for. Pass 'current()' for the currently authenticated user. When omitted, the session user is used only if no emailHash and no name is passed.", + "required": false, + "schema": { + "type": "string", + "example": "current()", + "default": "" + }, + "in": "query" + }, + { + "name": "emailHash", + "description": "SHA256 hash of the lowercase, trimmed email address to look up on Gravatar and Libravatar instead of the user's own email. Pass the hash, never the address itself.", + "required": false, + "schema": { + "type": "string", + "example": "", + "default": "" + }, + "in": "query" + }, + { + "name": "name", + "description": "Name to render initials from instead of the user's own name. Max length: 128 chars.", + "required": false, + "schema": { + "type": "string", + "example": "", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/avatars\/qr": { + "get": { + "summary": "Get QR code", + "operationId": "avatarsGetQR", + "tags": [ + "avatars" + ], + "description": "Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-qr.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [], + "ImpersonateUserId": [] + }, + "client": { + "Project": [], + "ImpersonateUserId": [] + }, + "server": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "text", + "description": "Plain text to be converted to QR code image.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "query" + }, + { + "name": "size", + "description": "QR code size. Pass an integer between 1 to 1000. Defaults to 400.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 400 + }, + "in": "query" + }, + { + "name": "margin", + "description": "Margin from edge. Pass an integer between 0 to 10. Defaults to 1.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 1 + }, + "in": "query" + }, + { + "name": "download", + "description": "Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": false + }, + "in": "query" + } + ] + } + }, + "\/avatars\/screenshots": { + "get": { + "summary": "Get webpage screenshot", + "operationId": "avatarsGetScreenshot", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to capture a screenshot of any website URL. This endpoint uses a headless browser to render the webpage and capture it as an image.\n\nYou can configure the browser viewport size, theme, user agent, geolocation, permissions, and more. Capture either just the viewport or the full page scroll.\n\nWhen width and height are specified, the image is resized accordingly. If both dimensions are 0, the API provides an image at original size. If dimensions are not specified, the default viewport size is 1280x720px.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-screenshot.md", + "rate-limit": 60, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [], + "ImpersonateUserId": [] + }, + "client": { + "Project": [], + "ImpersonateUserId": [] + }, + "server": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "url", + "description": "Website URL which you want to capture.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + }, + { + "name": "headers", + "description": "HTTP headers to send with the browser request. Defaults to empty.", + "required": false, + "schema": { + "type": "object", + "default": [], + "example": { + "Authorization": "Bearer token123", + "X-Custom-Header": "value" + } + }, + "in": "query" + }, + { + "name": "viewportWidth", + "description": "Browser viewport width. Pass an integer between 1 to 1920. Defaults to 1280.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1920, + "default": 1280 + }, + "in": "query" + }, + { + "name": "viewportHeight", + "description": "Browser viewport height. Pass an integer between 1 to 1080. Defaults to 720.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1080, + "default": 720 + }, + "in": "query" + }, + { + "name": "scale", + "description": "Browser scale factor. Pass a number between 0.1 to 3. Defaults to 1.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 2, + "default": 1 + }, + "in": "query" + }, + { + "name": "theme", + "description": "Browser theme. Pass \"light\" or \"dark\". Defaults to \"light\".", + "required": false, + "schema": { + "type": "string", + "example": "dark", + "title": "BrowserTheme", + "oneOf": [ + { + "type": "string", + "enum": [ + "light" + ], + "title": "light" + }, + { + "type": "string", + "enum": [ + "dark" + ], + "title": "dark" + } + ], + "default": "light" + }, + "in": "query" + }, + { + "name": "userAgent", + "description": "Custom user agent string. Defaults to browser default.", + "required": false, + "schema": { + "type": "string", + "example": "Mozilla\/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit\/605.1.15", + "default": "" + }, + "in": "query" + }, + { + "name": "fullpage", + "description": "Capture full page scroll. Pass 0 for viewport only, or 1 for full page. Defaults to 0.", + "required": false, + "schema": { + "type": "boolean", + "example": true, + "default": false + }, + "in": "query" + }, + { + "name": "locale", + "description": "Browser locale (e.g., \"en-US\", \"fr-FR\"). Defaults to browser default.", + "required": false, + "schema": { + "type": "string", + "example": "en-US", + "default": "" + }, + "in": "query" + }, + { + "name": "timezone", + "description": "IANA timezone identifier (e.g., \"America\/New_York\", \"Europe\/London\"). Defaults to browser default.", + "required": false, + "schema": { + "type": "string", + "example": "America\/New_York", + "title": "Timezone", + "oneOf": [ + { + "type": "string", + "enum": [ + "africa\/abidjan" + ], + "title": "africa\/abidjan" + }, + { + "type": "string", + "enum": [ + "africa\/accra" + ], + "title": "africa\/accra" + }, + { + "type": "string", + "enum": [ + "africa\/addis_ababa" + ], + "title": "africa\/addis_ababa" + }, + { + "type": "string", + "enum": [ + "africa\/algiers" + ], + "title": "africa\/algiers" + }, + { + "type": "string", + "enum": [ + "africa\/asmara" + ], + "title": "africa\/asmara" + }, + { + "type": "string", + "enum": [ + "africa\/bamako" + ], + "title": "africa\/bamako" + }, + { + "type": "string", + "enum": [ + "africa\/bangui" + ], + "title": "africa\/bangui" + }, + { + "type": "string", + "enum": [ + "africa\/banjul" + ], + "title": "africa\/banjul" + }, + { + "type": "string", + "enum": [ + "africa\/bissau" + ], + "title": "africa\/bissau" + }, + { + "type": "string", + "enum": [ + "africa\/blantyre" + ], + "title": "africa\/blantyre" + }, + { + "type": "string", + "enum": [ + "africa\/brazzaville" + ], + "title": "africa\/brazzaville" + }, + { + "type": "string", + "enum": [ + "africa\/bujumbura" + ], + "title": "africa\/bujumbura" + }, + { + "type": "string", + "enum": [ + "africa\/cairo" + ], + "title": "africa\/cairo" + }, + { + "type": "string", + "enum": [ + "africa\/casablanca" + ], + "title": "africa\/casablanca" + }, + { + "type": "string", + "enum": [ + "africa\/ceuta" + ], + "title": "africa\/ceuta" + }, + { + "type": "string", + "enum": [ + "africa\/conakry" + ], + "title": "africa\/conakry" + }, + { + "type": "string", + "enum": [ + "africa\/dakar" + ], + "title": "africa\/dakar" + }, + { + "type": "string", + "enum": [ + "africa\/dar_es_salaam" + ], + "title": "africa\/dar_es_salaam" + }, + { + "type": "string", + "enum": [ + "africa\/djibouti" + ], + "title": "africa\/djibouti" + }, + { + "type": "string", + "enum": [ + "africa\/douala" + ], + "title": "africa\/douala" + }, + { + "type": "string", + "enum": [ + "africa\/el_aaiun" + ], + "title": "africa\/el_aaiun" + }, + { + "type": "string", + "enum": [ + "africa\/freetown" + ], + "title": "africa\/freetown" + }, + { + "type": "string", + "enum": [ + "africa\/gaborone" + ], + "title": "africa\/gaborone" + }, + { + "type": "string", + "enum": [ + "africa\/harare" + ], + "title": "africa\/harare" + }, + { + "type": "string", + "enum": [ + "africa\/johannesburg" + ], + "title": "africa\/johannesburg" + }, + { + "type": "string", + "enum": [ + "africa\/juba" + ], + "title": "africa\/juba" + }, + { + "type": "string", + "enum": [ + "africa\/kampala" + ], + "title": "africa\/kampala" + }, + { + "type": "string", + "enum": [ + "africa\/khartoum" + ], + "title": "africa\/khartoum" + }, + { + "type": "string", + "enum": [ + "africa\/kigali" + ], + "title": "africa\/kigali" + }, + { + "type": "string", + "enum": [ + "africa\/kinshasa" + ], + "title": "africa\/kinshasa" + }, + { + "type": "string", + "enum": [ + "africa\/lagos" + ], + "title": "africa\/lagos" + }, + { + "type": "string", + "enum": [ + "africa\/libreville" + ], + "title": "africa\/libreville" + }, + { + "type": "string", + "enum": [ + "africa\/lome" + ], + "title": "africa\/lome" + }, + { + "type": "string", + "enum": [ + "africa\/luanda" + ], + "title": "africa\/luanda" + }, + { + "type": "string", + "enum": [ + "africa\/lubumbashi" + ], + "title": "africa\/lubumbashi" + }, + { + "type": "string", + "enum": [ + "africa\/lusaka" + ], + "title": "africa\/lusaka" + }, + { + "type": "string", + "enum": [ + "africa\/malabo" + ], + "title": "africa\/malabo" + }, + { + "type": "string", + "enum": [ + "africa\/maputo" + ], + "title": "africa\/maputo" + }, + { + "type": "string", + "enum": [ + "africa\/maseru" + ], + "title": "africa\/maseru" + }, + { + "type": "string", + "enum": [ + "africa\/mbabane" + ], + "title": "africa\/mbabane" + }, + { + "type": "string", + "enum": [ + "africa\/mogadishu" + ], + "title": "africa\/mogadishu" + }, + { + "type": "string", + "enum": [ + "africa\/monrovia" + ], + "title": "africa\/monrovia" + }, + { + "type": "string", + "enum": [ + "africa\/nairobi" + ], + "title": "africa\/nairobi" + }, + { + "type": "string", + "enum": [ + "africa\/ndjamena" + ], + "title": "africa\/ndjamena" + }, + { + "type": "string", + "enum": [ + "africa\/niamey" + ], + "title": "africa\/niamey" + }, + { + "type": "string", + "enum": [ + "africa\/nouakchott" + ], + "title": "africa\/nouakchott" + }, + { + "type": "string", + "enum": [ + "africa\/ouagadougou" + ], + "title": "africa\/ouagadougou" + }, + { + "type": "string", + "enum": [ + "africa\/porto-novo" + ], + "title": "africa\/porto-novo" + }, + { + "type": "string", + "enum": [ + "africa\/sao_tome" + ], + "title": "africa\/sao_tome" + }, + { + "type": "string", + "enum": [ + "africa\/tripoli" + ], + "title": "africa\/tripoli" + }, + { + "type": "string", + "enum": [ + "africa\/tunis" + ], + "title": "africa\/tunis" + }, + { + "type": "string", + "enum": [ + "africa\/windhoek" + ], + "title": "africa\/windhoek" + }, + { + "type": "string", + "enum": [ + "america\/adak" + ], + "title": "america\/adak" + }, + { + "type": "string", + "enum": [ + "america\/anchorage" + ], + "title": "america\/anchorage" + }, + { + "type": "string", + "enum": [ + "america\/anguilla" + ], + "title": "america\/anguilla" + }, + { + "type": "string", + "enum": [ + "america\/antigua" + ], + "title": "america\/antigua" + }, + { + "type": "string", + "enum": [ + "america\/araguaina" + ], + "title": "america\/araguaina" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/buenos_aires" + ], + "title": "america\/argentina\/buenos_aires" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/catamarca" + ], + "title": "america\/argentina\/catamarca" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/cordoba" + ], + "title": "america\/argentina\/cordoba" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/jujuy" + ], + "title": "america\/argentina\/jujuy" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/la_rioja" + ], + "title": "america\/argentina\/la_rioja" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/mendoza" + ], + "title": "america\/argentina\/mendoza" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/rio_gallegos" + ], + "title": "america\/argentina\/rio_gallegos" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/salta" + ], + "title": "america\/argentina\/salta" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/san_juan" + ], + "title": "america\/argentina\/san_juan" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/san_luis" + ], + "title": "america\/argentina\/san_luis" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/tucuman" + ], + "title": "america\/argentina\/tucuman" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/ushuaia" + ], + "title": "america\/argentina\/ushuaia" + }, + { + "type": "string", + "enum": [ + "america\/aruba" + ], + "title": "america\/aruba" + }, + { + "type": "string", + "enum": [ + "america\/asuncion" + ], + "title": "america\/asuncion" + }, + { + "type": "string", + "enum": [ + "america\/atikokan" + ], + "title": "america\/atikokan" + }, + { + "type": "string", + "enum": [ + "america\/bahia" + ], + "title": "america\/bahia" + }, + { + "type": "string", + "enum": [ + "america\/bahia_banderas" + ], + "title": "america\/bahia_banderas" + }, + { + "type": "string", + "enum": [ + "america\/barbados" + ], + "title": "america\/barbados" + }, + { + "type": "string", + "enum": [ + "america\/belem" + ], + "title": "america\/belem" + }, + { + "type": "string", + "enum": [ + "america\/belize" + ], + "title": "america\/belize" + }, + { + "type": "string", + "enum": [ + "america\/blanc-sablon" + ], + "title": "america\/blanc-sablon" + }, + { + "type": "string", + "enum": [ + "america\/boa_vista" + ], + "title": "america\/boa_vista" + }, + { + "type": "string", + "enum": [ + "america\/bogota" + ], + "title": "america\/bogota" + }, + { + "type": "string", + "enum": [ + "america\/boise" + ], + "title": "america\/boise" + }, + { + "type": "string", + "enum": [ + "america\/cambridge_bay" + ], + "title": "america\/cambridge_bay" + }, + { + "type": "string", + "enum": [ + "america\/campo_grande" + ], + "title": "america\/campo_grande" + }, + { + "type": "string", + "enum": [ + "america\/cancun" + ], + "title": "america\/cancun" + }, + { + "type": "string", + "enum": [ + "america\/caracas" + ], + "title": "america\/caracas" + }, + { + "type": "string", + "enum": [ + "america\/cayenne" + ], + "title": "america\/cayenne" + }, + { + "type": "string", + "enum": [ + "america\/cayman" + ], + "title": "america\/cayman" + }, + { + "type": "string", + "enum": [ + "america\/chicago" + ], + "title": "america\/chicago" + }, + { + "type": "string", + "enum": [ + "america\/chihuahua" + ], + "title": "america\/chihuahua" + }, + { + "type": "string", + "enum": [ + "america\/ciudad_juarez" + ], + "title": "america\/ciudad_juarez" + }, + { + "type": "string", + "enum": [ + "america\/costa_rica" + ], + "title": "america\/costa_rica" + }, + { + "type": "string", + "enum": [ + "america\/coyhaique" + ], + "title": "america\/coyhaique" + }, + { + "type": "string", + "enum": [ + "america\/creston" + ], + "title": "america\/creston" + }, + { + "type": "string", + "enum": [ + "america\/cuiaba" + ], + "title": "america\/cuiaba" + }, + { + "type": "string", + "enum": [ + "america\/curacao" + ], + "title": "america\/curacao" + }, + { + "type": "string", + "enum": [ + "america\/danmarkshavn" + ], + "title": "america\/danmarkshavn" + }, + { + "type": "string", + "enum": [ + "america\/dawson" + ], + "title": "america\/dawson" + }, + { + "type": "string", + "enum": [ + "america\/dawson_creek" + ], + "title": "america\/dawson_creek" + }, + { + "type": "string", + "enum": [ + "america\/denver" + ], + "title": "america\/denver" + }, + { + "type": "string", + "enum": [ + "america\/detroit" + ], + "title": "america\/detroit" + }, + { + "type": "string", + "enum": [ + "america\/dominica" + ], + "title": "america\/dominica" + }, + { + "type": "string", + "enum": [ + "america\/edmonton" + ], + "title": "america\/edmonton" + }, + { + "type": "string", + "enum": [ + "america\/eirunepe" + ], + "title": "america\/eirunepe" + }, + { + "type": "string", + "enum": [ + "america\/el_salvador" + ], + "title": "america\/el_salvador" + }, + { + "type": "string", + "enum": [ + "america\/fort_nelson" + ], + "title": "america\/fort_nelson" + }, + { + "type": "string", + "enum": [ + "america\/fortaleza" + ], + "title": "america\/fortaleza" + }, + { + "type": "string", + "enum": [ + "america\/glace_bay" + ], + "title": "america\/glace_bay" + }, + { + "type": "string", + "enum": [ + "america\/goose_bay" + ], + "title": "america\/goose_bay" + }, + { + "type": "string", + "enum": [ + "america\/grand_turk" + ], + "title": "america\/grand_turk" + }, + { + "type": "string", + "enum": [ + "america\/grenada" + ], + "title": "america\/grenada" + }, + { + "type": "string", + "enum": [ + "america\/guadeloupe" + ], + "title": "america\/guadeloupe" + }, + { + "type": "string", + "enum": [ + "america\/guatemala" + ], + "title": "america\/guatemala" + }, + { + "type": "string", + "enum": [ + "america\/guayaquil" + ], + "title": "america\/guayaquil" + }, + { + "type": "string", + "enum": [ + "america\/guyana" + ], + "title": "america\/guyana" + }, + { + "type": "string", + "enum": [ + "america\/halifax" + ], + "title": "america\/halifax" + }, + { + "type": "string", + "enum": [ + "america\/havana" + ], + "title": "america\/havana" + }, + { + "type": "string", + "enum": [ + "america\/hermosillo" + ], + "title": "america\/hermosillo" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/indianapolis" + ], + "title": "america\/indiana\/indianapolis" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/knox" + ], + "title": "america\/indiana\/knox" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/marengo" + ], + "title": "america\/indiana\/marengo" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/petersburg" + ], + "title": "america\/indiana\/petersburg" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/tell_city" + ], + "title": "america\/indiana\/tell_city" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/vevay" + ], + "title": "america\/indiana\/vevay" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/vincennes" + ], + "title": "america\/indiana\/vincennes" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/winamac" + ], + "title": "america\/indiana\/winamac" + }, + { + "type": "string", + "enum": [ + "america\/inuvik" + ], + "title": "america\/inuvik" + }, + { + "type": "string", + "enum": [ + "america\/iqaluit" + ], + "title": "america\/iqaluit" + }, + { + "type": "string", + "enum": [ + "america\/jamaica" + ], + "title": "america\/jamaica" + }, + { + "type": "string", + "enum": [ + "america\/juneau" + ], + "title": "america\/juneau" + }, + { + "type": "string", + "enum": [ + "america\/kentucky\/louisville" + ], + "title": "america\/kentucky\/louisville" + }, + { + "type": "string", + "enum": [ + "america\/kentucky\/monticello" + ], + "title": "america\/kentucky\/monticello" + }, + { + "type": "string", + "enum": [ + "america\/kralendijk" + ], + "title": "america\/kralendijk" + }, + { + "type": "string", + "enum": [ + "america\/la_paz" + ], + "title": "america\/la_paz" + }, + { + "type": "string", + "enum": [ + "america\/lima" + ], + "title": "america\/lima" + }, + { + "type": "string", + "enum": [ + "america\/los_angeles" + ], + "title": "america\/los_angeles" + }, + { + "type": "string", + "enum": [ + "america\/lower_princes" + ], + "title": "america\/lower_princes" + }, + { + "type": "string", + "enum": [ + "america\/maceio" + ], + "title": "america\/maceio" + }, + { + "type": "string", + "enum": [ + "america\/managua" + ], + "title": "america\/managua" + }, + { + "type": "string", + "enum": [ + "america\/manaus" + ], + "title": "america\/manaus" + }, + { + "type": "string", + "enum": [ + "america\/marigot" + ], + "title": "america\/marigot" + }, + { + "type": "string", + "enum": [ + "america\/martinique" + ], + "title": "america\/martinique" + }, + { + "type": "string", + "enum": [ + "america\/matamoros" + ], + "title": "america\/matamoros" + }, + { + "type": "string", + "enum": [ + "america\/mazatlan" + ], + "title": "america\/mazatlan" + }, + { + "type": "string", + "enum": [ + "america\/menominee" + ], + "title": "america\/menominee" + }, + { + "type": "string", + "enum": [ + "america\/merida" + ], + "title": "america\/merida" + }, + { + "type": "string", + "enum": [ + "america\/metlakatla" + ], + "title": "america\/metlakatla" + }, + { + "type": "string", + "enum": [ + "america\/mexico_city" + ], + "title": "america\/mexico_city" + }, + { + "type": "string", + "enum": [ + "america\/miquelon" + ], + "title": "america\/miquelon" + }, + { + "type": "string", + "enum": [ + "america\/moncton" + ], + "title": "america\/moncton" + }, + { + "type": "string", + "enum": [ + "america\/monterrey" + ], + "title": "america\/monterrey" + }, + { + "type": "string", + "enum": [ + "america\/montevideo" + ], + "title": "america\/montevideo" + }, + { + "type": "string", + "enum": [ + "america\/montserrat" + ], + "title": "america\/montserrat" + }, + { + "type": "string", + "enum": [ + "america\/nassau" + ], + "title": "america\/nassau" + }, + { + "type": "string", + "enum": [ + "america\/new_york" + ], + "title": "america\/new_york" + }, + { + "type": "string", + "enum": [ + "america\/nome" + ], + "title": "america\/nome" + }, + { + "type": "string", + "enum": [ + "america\/noronha" + ], + "title": "america\/noronha" + }, + { + "type": "string", + "enum": [ + "america\/north_dakota\/beulah" + ], + "title": "america\/north_dakota\/beulah" + }, + { + "type": "string", + "enum": [ + "america\/north_dakota\/center" + ], + "title": "america\/north_dakota\/center" + }, + { + "type": "string", + "enum": [ + "america\/north_dakota\/new_salem" + ], + "title": "america\/north_dakota\/new_salem" + }, + { + "type": "string", + "enum": [ + "america\/nuuk" + ], + "title": "america\/nuuk" + }, + { + "type": "string", + "enum": [ + "america\/ojinaga" + ], + "title": "america\/ojinaga" + }, + { + "type": "string", + "enum": [ + "america\/panama" + ], + "title": "america\/panama" + }, + { + "type": "string", + "enum": [ + "america\/paramaribo" + ], + "title": "america\/paramaribo" + }, + { + "type": "string", + "enum": [ + "america\/phoenix" + ], + "title": "america\/phoenix" + }, + { + "type": "string", + "enum": [ + "america\/port-au-prince" + ], + "title": "america\/port-au-prince" + }, + { + "type": "string", + "enum": [ + "america\/port_of_spain" + ], + "title": "america\/port_of_spain" + }, + { + "type": "string", + "enum": [ + "america\/porto_velho" + ], + "title": "america\/porto_velho" + }, + { + "type": "string", + "enum": [ + "america\/puerto_rico" + ], + "title": "america\/puerto_rico" + }, + { + "type": "string", + "enum": [ + "america\/punta_arenas" + ], + "title": "america\/punta_arenas" + }, + { + "type": "string", + "enum": [ + "america\/rankin_inlet" + ], + "title": "america\/rankin_inlet" + }, + { + "type": "string", + "enum": [ + "america\/recife" + ], + "title": "america\/recife" + }, + { + "type": "string", + "enum": [ + "america\/regina" + ], + "title": "america\/regina" + }, + { + "type": "string", + "enum": [ + "america\/resolute" + ], + "title": "america\/resolute" + }, + { + "type": "string", + "enum": [ + "america\/rio_branco" + ], + "title": "america\/rio_branco" + }, + { + "type": "string", + "enum": [ + "america\/santarem" + ], + "title": "america\/santarem" + }, + { + "type": "string", + "enum": [ + "america\/santiago" + ], + "title": "america\/santiago" + }, + { + "type": "string", + "enum": [ + "america\/santo_domingo" + ], + "title": "america\/santo_domingo" + }, + { + "type": "string", + "enum": [ + "america\/sao_paulo" + ], + "title": "america\/sao_paulo" + }, + { + "type": "string", + "enum": [ + "america\/scoresbysund" + ], + "title": "america\/scoresbysund" + }, + { + "type": "string", + "enum": [ + "america\/sitka" + ], + "title": "america\/sitka" + }, + { + "type": "string", + "enum": [ + "america\/st_barthelemy" + ], + "title": "america\/st_barthelemy" + }, + { + "type": "string", + "enum": [ + "america\/st_johns" + ], + "title": "america\/st_johns" + }, + { + "type": "string", + "enum": [ + "america\/st_kitts" + ], + "title": "america\/st_kitts" + }, + { + "type": "string", + "enum": [ + "america\/st_lucia" + ], + "title": "america\/st_lucia" + }, + { + "type": "string", + "enum": [ + "america\/st_thomas" + ], + "title": "america\/st_thomas" + }, + { + "type": "string", + "enum": [ + "america\/st_vincent" + ], + "title": "america\/st_vincent" + }, + { + "type": "string", + "enum": [ + "america\/swift_current" + ], + "title": "america\/swift_current" + }, + { + "type": "string", + "enum": [ + "america\/tegucigalpa" + ], + "title": "america\/tegucigalpa" + }, + { + "type": "string", + "enum": [ + "america\/thule" + ], + "title": "america\/thule" + }, + { + "type": "string", + "enum": [ + "america\/tijuana" + ], + "title": "america\/tijuana" + }, + { + "type": "string", + "enum": [ + "america\/toronto" + ], + "title": "america\/toronto" + }, + { + "type": "string", + "enum": [ + "america\/tortola" + ], + "title": "america\/tortola" + }, + { + "type": "string", + "enum": [ + "america\/vancouver" + ], + "title": "america\/vancouver" + }, + { + "type": "string", + "enum": [ + "america\/whitehorse" + ], + "title": "america\/whitehorse" + }, + { + "type": "string", + "enum": [ + "america\/winnipeg" + ], + "title": "america\/winnipeg" + }, + { + "type": "string", + "enum": [ + "america\/yakutat" + ], + "title": "america\/yakutat" + }, + { + "type": "string", + "enum": [ + "antarctica\/casey" + ], + "title": "antarctica\/casey" + }, + { + "type": "string", + "enum": [ + "antarctica\/davis" + ], + "title": "antarctica\/davis" + }, + { + "type": "string", + "enum": [ + "antarctica\/dumontdurville" + ], + "title": "antarctica\/dumontdurville" + }, + { + "type": "string", + "enum": [ + "antarctica\/macquarie" + ], + "title": "antarctica\/macquarie" + }, + { + "type": "string", + "enum": [ + "antarctica\/mawson" + ], + "title": "antarctica\/mawson" + }, + { + "type": "string", + "enum": [ + "antarctica\/mcmurdo" + ], + "title": "antarctica\/mcmurdo" + }, + { + "type": "string", + "enum": [ + "antarctica\/palmer" + ], + "title": "antarctica\/palmer" + }, + { + "type": "string", + "enum": [ + "antarctica\/rothera" + ], + "title": "antarctica\/rothera" + }, + { + "type": "string", + "enum": [ + "antarctica\/syowa" + ], + "title": "antarctica\/syowa" + }, + { + "type": "string", + "enum": [ + "antarctica\/troll" + ], + "title": "antarctica\/troll" + }, + { + "type": "string", + "enum": [ + "antarctica\/vostok" + ], + "title": "antarctica\/vostok" + }, + { + "type": "string", + "enum": [ + "arctic\/longyearbyen" + ], + "title": "arctic\/longyearbyen" + }, + { + "type": "string", + "enum": [ + "asia\/aden" + ], + "title": "asia\/aden" + }, + { + "type": "string", + "enum": [ + "asia\/almaty" + ], + "title": "asia\/almaty" + }, + { + "type": "string", + "enum": [ + "asia\/amman" + ], + "title": "asia\/amman" + }, + { + "type": "string", + "enum": [ + "asia\/anadyr" + ], + "title": "asia\/anadyr" + }, + { + "type": "string", + "enum": [ + "asia\/aqtau" + ], + "title": "asia\/aqtau" + }, + { + "type": "string", + "enum": [ + "asia\/aqtobe" + ], + "title": "asia\/aqtobe" + }, + { + "type": "string", + "enum": [ + "asia\/ashgabat" + ], + "title": "asia\/ashgabat" + }, + { + "type": "string", + "enum": [ + "asia\/atyrau" + ], + "title": "asia\/atyrau" + }, + { + "type": "string", + "enum": [ + "asia\/baghdad" + ], + "title": "asia\/baghdad" + }, + { + "type": "string", + "enum": [ + "asia\/bahrain" + ], + "title": "asia\/bahrain" + }, + { + "type": "string", + "enum": [ + "asia\/baku" + ], + "title": "asia\/baku" + }, + { + "type": "string", + "enum": [ + "asia\/bangkok" + ], + "title": "asia\/bangkok" + }, + { + "type": "string", + "enum": [ + "asia\/barnaul" + ], + "title": "asia\/barnaul" + }, + { + "type": "string", + "enum": [ + "asia\/beirut" + ], + "title": "asia\/beirut" + }, + { + "type": "string", + "enum": [ + "asia\/bishkek" + ], + "title": "asia\/bishkek" + }, + { + "type": "string", + "enum": [ + "asia\/brunei" + ], + "title": "asia\/brunei" + }, + { + "type": "string", + "enum": [ + "asia\/chita" + ], + "title": "asia\/chita" + }, + { + "type": "string", + "enum": [ + "asia\/colombo" + ], + "title": "asia\/colombo" + }, + { + "type": "string", + "enum": [ + "asia\/damascus" + ], + "title": "asia\/damascus" + }, + { + "type": "string", + "enum": [ + "asia\/dhaka" + ], + "title": "asia\/dhaka" + }, + { + "type": "string", + "enum": [ + "asia\/dili" + ], + "title": "asia\/dili" + }, + { + "type": "string", + "enum": [ + "asia\/dubai" + ], + "title": "asia\/dubai" + }, + { + "type": "string", + "enum": [ + "asia\/dushanbe" + ], + "title": "asia\/dushanbe" + }, + { + "type": "string", + "enum": [ + "asia\/famagusta" + ], + "title": "asia\/famagusta" + }, + { + "type": "string", + "enum": [ + "asia\/gaza" + ], + "title": "asia\/gaza" + }, + { + "type": "string", + "enum": [ + "asia\/hebron" + ], + "title": "asia\/hebron" + }, + { + "type": "string", + "enum": [ + "asia\/ho_chi_minh" + ], + "title": "asia\/ho_chi_minh" + }, + { + "type": "string", + "enum": [ + "asia\/hong_kong" + ], + "title": "asia\/hong_kong" + }, + { + "type": "string", + "enum": [ + "asia\/hovd" + ], + "title": "asia\/hovd" + }, + { + "type": "string", + "enum": [ + "asia\/irkutsk" + ], + "title": "asia\/irkutsk" + }, + { + "type": "string", + "enum": [ + "asia\/jakarta" + ], + "title": "asia\/jakarta" + }, + { + "type": "string", + "enum": [ + "asia\/jayapura" + ], + "title": "asia\/jayapura" + }, + { + "type": "string", + "enum": [ + "asia\/jerusalem" + ], + "title": "asia\/jerusalem" + }, + { + "type": "string", + "enum": [ + "asia\/kabul" + ], + "title": "asia\/kabul" + }, + { + "type": "string", + "enum": [ + "asia\/kamchatka" + ], + "title": "asia\/kamchatka" + }, + { + "type": "string", + "enum": [ + "asia\/karachi" + ], + "title": "asia\/karachi" + }, + { + "type": "string", + "enum": [ + "asia\/kathmandu" + ], + "title": "asia\/kathmandu" + }, + { + "type": "string", + "enum": [ + "asia\/khandyga" + ], + "title": "asia\/khandyga" + }, + { + "type": "string", + "enum": [ + "asia\/kolkata" + ], + "title": "asia\/kolkata" + }, + { + "type": "string", + "enum": [ + "asia\/krasnoyarsk" + ], + "title": "asia\/krasnoyarsk" + }, + { + "type": "string", + "enum": [ + "asia\/kuala_lumpur" + ], + "title": "asia\/kuala_lumpur" + }, + { + "type": "string", + "enum": [ + "asia\/kuching" + ], + "title": "asia\/kuching" + }, + { + "type": "string", + "enum": [ + "asia\/kuwait" + ], + "title": "asia\/kuwait" + }, + { + "type": "string", + "enum": [ + "asia\/macau" + ], + "title": "asia\/macau" + }, + { + "type": "string", + "enum": [ + "asia\/magadan" + ], + "title": "asia\/magadan" + }, + { + "type": "string", + "enum": [ + "asia\/makassar" + ], + "title": "asia\/makassar" + }, + { + "type": "string", + "enum": [ + "asia\/manila" + ], + "title": "asia\/manila" + }, + { + "type": "string", + "enum": [ + "asia\/muscat" + ], + "title": "asia\/muscat" + }, + { + "type": "string", + "enum": [ + "asia\/nicosia" + ], + "title": "asia\/nicosia" + }, + { + "type": "string", + "enum": [ + "asia\/novokuznetsk" + ], + "title": "asia\/novokuznetsk" + }, + { + "type": "string", + "enum": [ + "asia\/novosibirsk" + ], + "title": "asia\/novosibirsk" + }, + { + "type": "string", + "enum": [ + "asia\/omsk" + ], + "title": "asia\/omsk" + }, + { + "type": "string", + "enum": [ + "asia\/oral" + ], + "title": "asia\/oral" + }, + { + "type": "string", + "enum": [ + "asia\/phnom_penh" + ], + "title": "asia\/phnom_penh" + }, + { + "type": "string", + "enum": [ + "asia\/pontianak" + ], + "title": "asia\/pontianak" + }, + { + "type": "string", + "enum": [ + "asia\/pyongyang" + ], + "title": "asia\/pyongyang" + }, + { + "type": "string", + "enum": [ + "asia\/qatar" + ], + "title": "asia\/qatar" + }, + { + "type": "string", + "enum": [ + "asia\/qostanay" + ], + "title": "asia\/qostanay" + }, + { + "type": "string", + "enum": [ + "asia\/qyzylorda" + ], + "title": "asia\/qyzylorda" + }, + { + "type": "string", + "enum": [ + "asia\/riyadh" + ], + "title": "asia\/riyadh" + }, + { + "type": "string", + "enum": [ + "asia\/sakhalin" + ], + "title": "asia\/sakhalin" + }, + { + "type": "string", + "enum": [ + "asia\/samarkand" + ], + "title": "asia\/samarkand" + }, + { + "type": "string", + "enum": [ + "asia\/seoul" + ], + "title": "asia\/seoul" + }, + { + "type": "string", + "enum": [ + "asia\/shanghai" + ], + "title": "asia\/shanghai" + }, + { + "type": "string", + "enum": [ + "asia\/singapore" + ], + "title": "asia\/singapore" + }, + { + "type": "string", + "enum": [ + "asia\/srednekolymsk" + ], + "title": "asia\/srednekolymsk" + }, + { + "type": "string", + "enum": [ + "asia\/taipei" + ], + "title": "asia\/taipei" + }, + { + "type": "string", + "enum": [ + "asia\/tashkent" + ], + "title": "asia\/tashkent" + }, + { + "type": "string", + "enum": [ + "asia\/tbilisi" + ], + "title": "asia\/tbilisi" + }, + { + "type": "string", + "enum": [ + "asia\/tehran" + ], + "title": "asia\/tehran" + }, + { + "type": "string", + "enum": [ + "asia\/thimphu" + ], + "title": "asia\/thimphu" + }, + { + "type": "string", + "enum": [ + "asia\/tokyo" + ], + "title": "asia\/tokyo" + }, + { + "type": "string", + "enum": [ + "asia\/tomsk" + ], + "title": "asia\/tomsk" + }, + { + "type": "string", + "enum": [ + "asia\/ulaanbaatar" + ], + "title": "asia\/ulaanbaatar" + }, + { + "type": "string", + "enum": [ + "asia\/urumqi" + ], + "title": "asia\/urumqi" + }, + { + "type": "string", + "enum": [ + "asia\/ust-nera" + ], + "title": "asia\/ust-nera" + }, + { + "type": "string", + "enum": [ + "asia\/vientiane" + ], + "title": "asia\/vientiane" + }, + { + "type": "string", + "enum": [ + "asia\/vladivostok" + ], + "title": "asia\/vladivostok" + }, + { + "type": "string", + "enum": [ + "asia\/yakutsk" + ], + "title": "asia\/yakutsk" + }, + { + "type": "string", + "enum": [ + "asia\/yangon" + ], + "title": "asia\/yangon" + }, + { + "type": "string", + "enum": [ + "asia\/yekaterinburg" + ], + "title": "asia\/yekaterinburg" + }, + { + "type": "string", + "enum": [ + "asia\/yerevan" + ], + "title": "asia\/yerevan" + }, + { + "type": "string", + "enum": [ + "atlantic\/azores" + ], + "title": "atlantic\/azores" + }, + { + "type": "string", + "enum": [ + "atlantic\/bermuda" + ], + "title": "atlantic\/bermuda" + }, + { + "type": "string", + "enum": [ + "atlantic\/canary" + ], + "title": "atlantic\/canary" + }, + { + "type": "string", + "enum": [ + "atlantic\/cape_verde" + ], + "title": "atlantic\/cape_verde" + }, + { + "type": "string", + "enum": [ + "atlantic\/faroe" + ], + "title": "atlantic\/faroe" + }, + { + "type": "string", + "enum": [ + "atlantic\/madeira" + ], + "title": "atlantic\/madeira" + }, + { + "type": "string", + "enum": [ + "atlantic\/reykjavik" + ], + "title": "atlantic\/reykjavik" + }, + { + "type": "string", + "enum": [ + "atlantic\/south_georgia" + ], + "title": "atlantic\/south_georgia" + }, + { + "type": "string", + "enum": [ + "atlantic\/st_helena" + ], + "title": "atlantic\/st_helena" + }, + { + "type": "string", + "enum": [ + "atlantic\/stanley" + ], + "title": "atlantic\/stanley" + }, + { + "type": "string", + "enum": [ + "australia\/adelaide" + ], + "title": "australia\/adelaide" + }, + { + "type": "string", + "enum": [ + "australia\/brisbane" + ], + "title": "australia\/brisbane" + }, + { + "type": "string", + "enum": [ + "australia\/broken_hill" + ], + "title": "australia\/broken_hill" + }, + { + "type": "string", + "enum": [ + "australia\/darwin" + ], + "title": "australia\/darwin" + }, + { + "type": "string", + "enum": [ + "australia\/eucla" + ], + "title": "australia\/eucla" + }, + { + "type": "string", + "enum": [ + "australia\/hobart" + ], + "title": "australia\/hobart" + }, + { + "type": "string", + "enum": [ + "australia\/lindeman" + ], + "title": "australia\/lindeman" + }, + { + "type": "string", + "enum": [ + "australia\/lord_howe" + ], + "title": "australia\/lord_howe" + }, + { + "type": "string", + "enum": [ + "australia\/melbourne" + ], + "title": "australia\/melbourne" + }, + { + "type": "string", + "enum": [ + "australia\/perth" + ], + "title": "australia\/perth" + }, + { + "type": "string", + "enum": [ + "australia\/sydney" + ], + "title": "australia\/sydney" + }, + { + "type": "string", + "enum": [ + "europe\/amsterdam" + ], + "title": "europe\/amsterdam" + }, + { + "type": "string", + "enum": [ + "europe\/andorra" + ], + "title": "europe\/andorra" + }, + { + "type": "string", + "enum": [ + "europe\/astrakhan" + ], + "title": "europe\/astrakhan" + }, + { + "type": "string", + "enum": [ + "europe\/athens" + ], + "title": "europe\/athens" + }, + { + "type": "string", + "enum": [ + "europe\/belgrade" + ], + "title": "europe\/belgrade" + }, + { + "type": "string", + "enum": [ + "europe\/berlin" + ], + "title": "europe\/berlin" + }, + { + "type": "string", + "enum": [ + "europe\/bratislava" + ], + "title": "europe\/bratislava" + }, + { + "type": "string", + "enum": [ + "europe\/brussels" + ], + "title": "europe\/brussels" + }, + { + "type": "string", + "enum": [ + "europe\/bucharest" + ], + "title": "europe\/bucharest" + }, + { + "type": "string", + "enum": [ + "europe\/budapest" + ], + "title": "europe\/budapest" + }, + { + "type": "string", + "enum": [ + "europe\/busingen" + ], + "title": "europe\/busingen" + }, + { + "type": "string", + "enum": [ + "europe\/chisinau" + ], + "title": "europe\/chisinau" + }, + { + "type": "string", + "enum": [ + "europe\/copenhagen" + ], + "title": "europe\/copenhagen" + }, + { + "type": "string", + "enum": [ + "europe\/dublin" + ], + "title": "europe\/dublin" + }, + { + "type": "string", + "enum": [ + "europe\/gibraltar" + ], + "title": "europe\/gibraltar" + }, + { + "type": "string", + "enum": [ + "europe\/guernsey" + ], + "title": "europe\/guernsey" + }, + { + "type": "string", + "enum": [ + "europe\/helsinki" + ], + "title": "europe\/helsinki" + }, + { + "type": "string", + "enum": [ + "europe\/isle_of_man" + ], + "title": "europe\/isle_of_man" + }, + { + "type": "string", + "enum": [ + "europe\/istanbul" + ], + "title": "europe\/istanbul" + }, + { + "type": "string", + "enum": [ + "europe\/jersey" + ], + "title": "europe\/jersey" + }, + { + "type": "string", + "enum": [ + "europe\/kaliningrad" + ], + "title": "europe\/kaliningrad" + }, + { + "type": "string", + "enum": [ + "europe\/kirov" + ], + "title": "europe\/kirov" + }, + { + "type": "string", + "enum": [ + "europe\/kyiv" + ], + "title": "europe\/kyiv" + }, + { + "type": "string", + "enum": [ + "europe\/lisbon" + ], + "title": "europe\/lisbon" + }, + { + "type": "string", + "enum": [ + "europe\/ljubljana" + ], + "title": "europe\/ljubljana" + }, + { + "type": "string", + "enum": [ + "europe\/london" + ], + "title": "europe\/london" + }, + { + "type": "string", + "enum": [ + "europe\/luxembourg" + ], + "title": "europe\/luxembourg" + }, + { + "type": "string", + "enum": [ + "europe\/madrid" + ], + "title": "europe\/madrid" + }, + { + "type": "string", + "enum": [ + "europe\/malta" + ], + "title": "europe\/malta" + }, + { + "type": "string", + "enum": [ + "europe\/mariehamn" + ], + "title": "europe\/mariehamn" + }, + { + "type": "string", + "enum": [ + "europe\/minsk" + ], + "title": "europe\/minsk" + }, + { + "type": "string", + "enum": [ + "europe\/monaco" + ], + "title": "europe\/monaco" + }, + { + "type": "string", + "enum": [ + "europe\/moscow" + ], + "title": "europe\/moscow" + }, + { + "type": "string", + "enum": [ + "europe\/oslo" + ], + "title": "europe\/oslo" + }, + { + "type": "string", + "enum": [ + "europe\/paris" + ], + "title": "europe\/paris" + }, + { + "type": "string", + "enum": [ + "europe\/podgorica" + ], + "title": "europe\/podgorica" + }, + { + "type": "string", + "enum": [ + "europe\/prague" + ], + "title": "europe\/prague" + }, + { + "type": "string", + "enum": [ + "europe\/riga" + ], + "title": "europe\/riga" + }, + { + "type": "string", + "enum": [ + "europe\/rome" + ], + "title": "europe\/rome" + }, + { + "type": "string", + "enum": [ + "europe\/samara" + ], + "title": "europe\/samara" + }, + { + "type": "string", + "enum": [ + "europe\/san_marino" + ], + "title": "europe\/san_marino" + }, + { + "type": "string", + "enum": [ + "europe\/sarajevo" + ], + "title": "europe\/sarajevo" + }, + { + "type": "string", + "enum": [ + "europe\/saratov" + ], + "title": "europe\/saratov" + }, + { + "type": "string", + "enum": [ + "europe\/simferopol" + ], + "title": "europe\/simferopol" + }, + { + "type": "string", + "enum": [ + "europe\/skopje" + ], + "title": "europe\/skopje" + }, + { + "type": "string", + "enum": [ + "europe\/sofia" + ], + "title": "europe\/sofia" + }, + { + "type": "string", + "enum": [ + "europe\/stockholm" + ], + "title": "europe\/stockholm" + }, + { + "type": "string", + "enum": [ + "europe\/tallinn" + ], + "title": "europe\/tallinn" + }, + { + "type": "string", + "enum": [ + "europe\/tirane" + ], + "title": "europe\/tirane" + }, + { + "type": "string", + "enum": [ + "europe\/ulyanovsk" + ], + "title": "europe\/ulyanovsk" + }, + { + "type": "string", + "enum": [ + "europe\/vaduz" + ], + "title": "europe\/vaduz" + }, + { + "type": "string", + "enum": [ + "europe\/vatican" + ], + "title": "europe\/vatican" + }, + { + "type": "string", + "enum": [ + "europe\/vienna" + ], + "title": "europe\/vienna" + }, + { + "type": "string", + "enum": [ + "europe\/vilnius" + ], + "title": "europe\/vilnius" + }, + { + "type": "string", + "enum": [ + "europe\/volgograd" + ], + "title": "europe\/volgograd" + }, + { + "type": "string", + "enum": [ + "europe\/warsaw" + ], + "title": "europe\/warsaw" + }, + { + "type": "string", + "enum": [ + "europe\/zagreb" + ], + "title": "europe\/zagreb" + }, + { + "type": "string", + "enum": [ + "europe\/zurich" + ], + "title": "europe\/zurich" + }, + { + "type": "string", + "enum": [ + "indian\/antananarivo" + ], + "title": "indian\/antananarivo" + }, + { + "type": "string", + "enum": [ + "indian\/chagos" + ], + "title": "indian\/chagos" + }, + { + "type": "string", + "enum": [ + "indian\/christmas" + ], + "title": "indian\/christmas" + }, + { + "type": "string", + "enum": [ + "indian\/cocos" + ], + "title": "indian\/cocos" + }, + { + "type": "string", + "enum": [ + "indian\/comoro" + ], + "title": "indian\/comoro" + }, + { + "type": "string", + "enum": [ + "indian\/kerguelen" + ], + "title": "indian\/kerguelen" + }, + { + "type": "string", + "enum": [ + "indian\/mahe" + ], + "title": "indian\/mahe" + }, + { + "type": "string", + "enum": [ + "indian\/maldives" + ], + "title": "indian\/maldives" + }, + { + "type": "string", + "enum": [ + "indian\/mauritius" + ], + "title": "indian\/mauritius" + }, + { + "type": "string", + "enum": [ + "indian\/mayotte" + ], + "title": "indian\/mayotte" + }, + { + "type": "string", + "enum": [ + "indian\/reunion" + ], + "title": "indian\/reunion" + }, + { + "type": "string", + "enum": [ + "pacific\/apia" + ], + "title": "pacific\/apia" + }, + { + "type": "string", + "enum": [ + "pacific\/auckland" + ], + "title": "pacific\/auckland" + }, + { + "type": "string", + "enum": [ + "pacific\/bougainville" + ], + "title": "pacific\/bougainville" + }, + { + "type": "string", + "enum": [ + "pacific\/chatham" + ], + "title": "pacific\/chatham" + }, + { + "type": "string", + "enum": [ + "pacific\/chuuk" + ], + "title": "pacific\/chuuk" + }, + { + "type": "string", + "enum": [ + "pacific\/easter" + ], + "title": "pacific\/easter" + }, + { + "type": "string", + "enum": [ + "pacific\/efate" + ], + "title": "pacific\/efate" + }, + { + "type": "string", + "enum": [ + "pacific\/fakaofo" + ], + "title": "pacific\/fakaofo" + }, + { + "type": "string", + "enum": [ + "pacific\/fiji" + ], + "title": "pacific\/fiji" + }, + { + "type": "string", + "enum": [ + "pacific\/funafuti" + ], + "title": "pacific\/funafuti" + }, + { + "type": "string", + "enum": [ + "pacific\/galapagos" + ], + "title": "pacific\/galapagos" + }, + { + "type": "string", + "enum": [ + "pacific\/gambier" + ], + "title": "pacific\/gambier" + }, + { + "type": "string", + "enum": [ + "pacific\/guadalcanal" + ], + "title": "pacific\/guadalcanal" + }, + { + "type": "string", + "enum": [ + "pacific\/guam" + ], + "title": "pacific\/guam" + }, + { + "type": "string", + "enum": [ + "pacific\/honolulu" + ], + "title": "pacific\/honolulu" + }, + { + "type": "string", + "enum": [ + "pacific\/kanton" + ], + "title": "pacific\/kanton" + }, + { + "type": "string", + "enum": [ + "pacific\/kiritimati" + ], + "title": "pacific\/kiritimati" + }, + { + "type": "string", + "enum": [ + "pacific\/kosrae" + ], + "title": "pacific\/kosrae" + }, + { + "type": "string", + "enum": [ + "pacific\/kwajalein" + ], + "title": "pacific\/kwajalein" + }, + { + "type": "string", + "enum": [ + "pacific\/majuro" + ], + "title": "pacific\/majuro" + }, + { + "type": "string", + "enum": [ + "pacific\/marquesas" + ], + "title": "pacific\/marquesas" + }, + { + "type": "string", + "enum": [ + "pacific\/midway" + ], + "title": "pacific\/midway" + }, + { + "type": "string", + "enum": [ + "pacific\/nauru" + ], + "title": "pacific\/nauru" + }, + { + "type": "string", + "enum": [ + "pacific\/niue" + ], + "title": "pacific\/niue" + }, + { + "type": "string", + "enum": [ + "pacific\/norfolk" + ], + "title": "pacific\/norfolk" + }, + { + "type": "string", + "enum": [ + "pacific\/noumea" + ], + "title": "pacific\/noumea" + }, + { + "type": "string", + "enum": [ + "pacific\/pago_pago" + ], + "title": "pacific\/pago_pago" + }, + { + "type": "string", + "enum": [ + "pacific\/palau" + ], + "title": "pacific\/palau" + }, + { + "type": "string", + "enum": [ + "pacific\/pitcairn" + ], + "title": "pacific\/pitcairn" + }, + { + "type": "string", + "enum": [ + "pacific\/pohnpei" + ], + "title": "pacific\/pohnpei" + }, + { + "type": "string", + "enum": [ + "pacific\/port_moresby" + ], + "title": "pacific\/port_moresby" + }, + { + "type": "string", + "enum": [ + "pacific\/rarotonga" + ], + "title": "pacific\/rarotonga" + }, + { + "type": "string", + "enum": [ + "pacific\/saipan" + ], + "title": "pacific\/saipan" + }, + { + "type": "string", + "enum": [ + "pacific\/tahiti" + ], + "title": "pacific\/tahiti" + }, + { + "type": "string", + "enum": [ + "pacific\/tarawa" + ], + "title": "pacific\/tarawa" + }, + { + "type": "string", + "enum": [ + "pacific\/tongatapu" + ], + "title": "pacific\/tongatapu" + }, + { + "type": "string", + "enum": [ + "pacific\/wake" + ], + "title": "pacific\/wake" + }, + { + "type": "string", + "enum": [ + "pacific\/wallis" + ], + "title": "pacific\/wallis" + }, + { + "type": "string", + "enum": [ + "utc" + ], + "title": "utc" + } + ], + "default": "" + }, + "in": "query" + }, + { + "name": "latitude", + "description": "Geolocation latitude. Pass a number between -90 to 90. Defaults to 0.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 37.7749, + "default": 0 + }, + "in": "query" + }, + { + "name": "longitude", + "description": "Geolocation longitude. Pass a number between -180 to 180. Defaults to 0.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": -122.4194, + "default": 0 + }, + "in": "query" + }, + { + "name": "accuracy", + "description": "Geolocation accuracy in meters. Pass a number between 0 to 100000. Defaults to 0.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 100, + "default": 0 + }, + "in": "query" + }, + { + "name": "touch", + "description": "Enable touch support. Pass 0 for no touch, or 1 for touch enabled. Defaults to 0.", + "required": false, + "schema": { + "type": "boolean", + "example": true, + "default": false + }, + "in": "query" + }, + { + "name": "permissions", + "description": "Browser permissions to grant. Pass an array of permission names like [\"geolocation\", \"camera\", \"microphone\"]. Defaults to empty.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "BrowserPermission", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "geolocation" + ], + "title": "geolocation" + }, + { + "type": "string", + "enum": [ + "camera" + ], + "title": "camera" + }, + { + "type": "string", + "enum": [ + "microphone" + ], + "title": "microphone" + }, + { + "type": "string", + "enum": [ + "notifications" + ], + "title": "notifications" + }, + { + "type": "string", + "enum": [ + "midi" + ], + "title": "midi" + }, + { + "type": "string", + "enum": [ + "push" + ], + "title": "push" + }, + { + "type": "string", + "enum": [ + "clipboard-read" + ], + "title": "clipboard-read" + }, + { + "type": "string", + "enum": [ + "clipboard-write" + ], + "title": "clipboard-write" + }, + { + "type": "string", + "enum": [ + "payment-handler" + ], + "title": "payment-handler" + }, + { + "type": "string", + "enum": [ + "usb" + ], + "title": "usb" + }, + { + "type": "string", + "enum": [ + "bluetooth" + ], + "title": "bluetooth" + }, + { + "type": "string", + "enum": [ + "accelerometer" + ], + "title": "accelerometer" + }, + { + "type": "string", + "enum": [ + "gyroscope" + ], + "title": "gyroscope" + }, + { + "type": "string", + "enum": [ + "magnetometer" + ], + "title": "magnetometer" + }, + { + "type": "string", + "enum": [ + "ambient-light-sensor" + ], + "title": "ambient-light-sensor" + }, + { + "type": "string", + "enum": [ + "background-sync" + ], + "title": "background-sync" + }, + { + "type": "string", + "enum": [ + "persistent-storage" + ], + "title": "persistent-storage" + }, + { + "type": "string", + "enum": [ + "screen-wake-lock" + ], + "title": "screen-wake-lock" + }, + { + "type": "string", + "enum": [ + "web-share" + ], + "title": "web-share" + }, + { + "type": "string", + "enum": [ + "xr-spatial-tracking" + ], + "title": "xr-spatial-tracking" + } + ] + }, + "example": [ + "geolocation", + "notifications" + ], + "default": [] + }, + "in": "query" + }, + { + "name": "sleep", + "description": "Wait time in seconds before taking the screenshot. Pass an integer between 0 to 10. Defaults to 0.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 3, + "default": 0 + }, + "in": "query" + }, + { + "name": "width", + "description": "Output image width. Pass 0 to use original width, or an integer between 1 to 2000. Defaults to 0 (original width).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 800, + "default": 0 + }, + "in": "query" + }, + { + "name": "height", + "description": "Output image height. Pass 0 to use original height, or an integer between 1 to 2000. Defaults to 0 (original height).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 600, + "default": 0 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Screenshot quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 85, + "default": -1 + }, + "in": "query" + }, + { + "name": "output", + "description": "Output format type (jpeg, jpg, png, gif and webp).", + "required": false, + "schema": { + "type": "string", + "example": "jpeg", + "title": "ImageFormat", + "oneOf": [ + { + "type": "string", + "enum": [ + "jpg" + ], + "title": "jpg" + }, + { + "type": "string", + "enum": [ + "jpeg" + ], + "title": "jpeg" + }, + { + "type": "string", + "enum": [ + "png" + ], + "title": "png" + }, + { + "type": "string", + "enum": [ + "webp" + ], + "title": "webp" + }, + { + "type": "string", + "enum": [ + "heic" + ], + "title": "heic" + }, + { + "type": "string", + "enum": [ + "avif" + ], + "title": "avif" + }, + { + "type": "string", + "enum": [ + "gif" + ], + "title": "gif" + } + ], + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/backups\/archives": { + "get": { + "summary": "List archives", + "operationId": "backupsListArchives", + "tags": [ + "backups" + ], + "description": "List all archives for a project.", + "responses": { + "200": { + "description": "Backup archive list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupArchiveList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/list-archives.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "archives.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create archive", + "operationId": "backupsCreateArchive", + "tags": [ + "backups" + ], + "description": "Create a new archive asynchronously for a project.", + "responses": { + "201": { + "description": "Archive", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupArchive" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/create-archive.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "archives.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "services": { + "description": "Array of services to backup", + "type": "array", + "items": { + "title": "BackupServices", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "documentsdb" + ], + "title": "documentsdb" + }, + { + "type": "string", + "enum": [ + "vectorsdb" + ], + "title": "vectorsdb" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases" + ], + "title": "dedicatedDatabases" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "storage" + ], + "title": "storage" + } + ] + } + }, + "resourceId": { + "description": "Resource ID. When set, only this single resource will be backed up.", + "type": "string", + "example": "", + "nullable": true + } + }, + "required": [ + "services" + ] + } + } + } + } + } + }, + "\/backups\/archives\/{archiveId}": { + "get": { + "summary": "Get backup archive", + "operationId": "backupsGetArchive", + "tags": [ + "backups" + ], + "description": "Get a backup archive using it's ID.", + "responses": { + "200": { + "description": "Archive", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupArchive" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/get-archive.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "archives.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "archiveId", + "description": "Archive ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete archive", + "operationId": "backupsDeleteArchive", + "tags": [ + "backups" + ], + "description": "Delete an existing archive for a project.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/delete-archive.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "archives.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "archiveId", + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "x-appwrite": { + "idGenerator": "ID.unique" + }, + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/backups\/policies": { + "get": { + "summary": "List backup policies", + "operationId": "backupsListPolicies", + "tags": [ + "backups" + ], + "description": "List all policies for a project.", + "responses": { + "200": { + "description": "Backup policy list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/list-policies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.read", + "backups.policies.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create backup policy", + "operationId": "backupsCreatePolicy", + "tags": [ + "backups" + ], + "description": "Create a new backup policy.", + "responses": { + "201": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/create-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "backups.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "policyId": { + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "" + }, + "services": { + "description": "Array of services to backup", + "type": "array", + "items": { + "title": "BackupServices", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "documentsdb" + ], + "title": "documentsdb" + }, + { + "type": "string", + "enum": [ + "vectorsdb" + ], + "title": "vectorsdb" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases" + ], + "title": "dedicatedDatabases" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "storage" + ], + "title": "storage" + } + ] + } + }, + "resourceId": { + "description": "Resource ID. When set, only this single resource will be backed up.", + "type": "string", + "example": "", + "nullable": true + }, + "enabled": { + "description": "Is policy enabled? When set to 'disabled', no backups will be taken", + "type": "boolean", + "default": true, + "example": false + }, + "retention": { + "description": "Days to keep backups before deletion", + "type": "integer", + "example": 1, + "format": "int32" + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + } + }, + "required": [ + "policyId", + "services", + "retention", + "schedule" + ] + } + } + } + } + } + }, + "\/backups\/policies\/{policyId}": { + "get": { + "summary": "Get backup policy", + "operationId": "backupsGetPolicy", + "tags": [ + "backups" + ], + "description": "Get a backup policy using it's ID.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/get-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.read", + "backups.policies.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "policyId", + "description": "Policy ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update backup policy", + "operationId": "backupsUpdatePolicy", + "tags": [ + "backups" + ], + "description": "Update an existing policy using it's ID.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/update-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "backups.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "policyId", + "description": "Policy ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "", + "nullable": true + }, + "retention": { + "description": "Days to keep backups before deletion", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "schedule": { + "description": "Cron expression", + "type": "string" + }, + "enabled": { + "description": "Is Backup enabled? When set to 'disabled', No backup will be taken", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete backup policy", + "operationId": "backupsDeletePolicy", + "tags": [ + "backups" + ], + "description": "Delete a policy using it's ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/delete-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "backups.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "policyId", + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "x-appwrite": { + "idGenerator": "ID.unique" + }, + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/backups\/restoration": { + "post": { + "summary": "Create restoration", + "operationId": "backupsCreateRestoration", + "tags": [ + "backups" + ], + "description": "Create and trigger a new restoration for a backup on a project.\n\nFor a backup of one database, the restoration resolves its destination before it is queued. When `newResourceId` is omitted, the archived database is restored in place and its own ID is returned in `options`. Pass a different `newResourceId` to restore alongside it as a new database instead.\n\nThe restoration migration records the archived database in `resourceId` and `resourceType`, and the resolved database in `destinationResourceId` and `destinationResourceType`. Database types are stored canonically as `database`, `documentsdb`, or `vectorsdb`. Project-wide restorations leave these fields empty because they do not have a single source or destination database.\n\nTo list every migration related to one database, use its canonical type in a nested `OR(AND(...), AND(...), AND(...))` across the root, parent, and destination relation pairs: `(resourceType, resourceId)`, `(parentResourceType, parentResourceId)`, and `(destinationResourceType, destinationResourceId)`. Legacy and TablesDB databases use `database`; the operational `resourceType` of a table migration is not rewritten to `tablesdb`.\n\nWhen restoring a DocumentsDB or VectorsDB database from a dedicated source, the restore provisions a fresh dedicated backing database at the source database's own specification and lands the data there. An in-place restore swaps the database onto that backing only once the restore has succeeded, and retires the backing it displaced only once that swap is confirmed, so the source keeps serving its own data until the restored data is in place and any failure leaves it untouched. A serverless source has no dedicated backing to clone and restores onto the archived database instead.\n", + "responses": { + "201": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/create-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "restorations.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "archiveId": { + "description": "Backup archive ID to restore", + "type": "string", + "example": "" + }, + "services": { + "description": "Array of services to restore", + "type": "array", + "items": { + "title": "BackupServices", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "documentsdb" + ], + "title": "documentsdb" + }, + { + "type": "string", + "enum": [ + "vectorsdb" + ], + "title": "vectorsdb" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases" + ], + "title": "dedicatedDatabases" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "storage" + ], + "title": "storage" + } + ] + } + }, + "newResourceId": { + "description": "Destination resource ID. Omit to restore the archived resource in place, or pass a different ID to restore alongside it as a new resource. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "default": "", + "example": "", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "newResourceName": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "archiveId", + "services" + ] + } + } + } + } + } + }, + "\/backups\/restorations": { + "get": { + "summary": "List restorations", + "operationId": "backupsListRestorations", + "tags": [ + "backups" + ], + "description": "List all backup restorations for a project.", + "responses": { + "200": { + "description": "Backup restoration list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupRestorationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/list-restorations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "restorations.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/backups\/restorations\/{restorationId}": { + "get": { + "summary": "Get backup restoration", + "operationId": "backupsGetRestoration", + "tags": [ + "backups" + ], + "description": "Get the current status of a backup restoration.", + "responses": { + "200": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/get-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "restorations.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "restorationId", + "description": "Restoration ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/console\/assistant": { + "post": { + "summary": "Create assistant query", + "operationId": "assistantChat", + "tags": [ + "assistant" + ], + "description": "Send a prompt to the AI assistant and receive a response. This endpoint allows you to interact with Appwrite's AI assistant by sending questions or prompts and receiving helpful responses in real-time through a server-sent events stream. ", + "responses": { + "200": { + "description": "Text", + "content": { + "text\/plain": { + "schema": { + "type": "string" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "console", + "demo": "assistant\/chat.md", + "rate-limit": 15, + "rate-time": 3600, + "rate-key": "userId:{userId}", + "scope": "assistant.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "prompt": { + "description": "Prompt. A string containing questions asked to the AI assistant.", + "type": "string", + "example": "" + } + }, + "required": [ + "prompt" + ] + } + } + } + } + } + }, + "\/console\/campaigns\/{campaignId}": { + "get": { + "summary": "Get campaign details", + "operationId": "consoleGetCampaign", + "tags": [ + "console" + ], + "description": "Receive the details of a campaign using its ID.", + "responses": { + "201": { + "description": "Campaign", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/campaign" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/get-campaign.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "campaignId", + "description": "ID of the campaign", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/console\/coupons\/{couponId}": { + "get": { + "summary": "Get coupon details", + "operationId": "consoleGetCoupon", + "tags": [ + "console" + ], + "description": "Get the details of a coupon using it's coupon ID.", + "responses": { + "201": { + "description": "Coupon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/coupon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/get-coupon.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "couponId", + "description": "ID of the coupon", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/console\/databases": { + "get": { + "summary": "List databases", + "operationId": "consoleListDatabases", + "tags": [ + "console" + ], + "description": "Get a list of all the project's databases. You can use the query params to filter your results. This returns every database across all types and product APIs in a single call.\n", + "responses": { + "200": { + "description": "Databases List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/list-databases.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "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: name", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/console\/oauth2-providers": { + "get": { + "summary": "List OAuth2 providers", + "operationId": "consoleListOAuth2Providers", + "tags": [ + "console" + ], + "description": "List all OAuth2 providers supported by the Appwrite server, along with the parameters required to configure each provider. The response excludes mock providers but includes sandbox providers.", + "responses": { + "200": { + "description": "Console OAuth2 Providers List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/consoleOAuth2ProviderList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "console", + "demo": "console\/list-o-auth-2-providers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ] + } + }, + "\/console\/plans": { + "get": { + "summary": "Get plans", + "operationId": "consoleGetPlans", + "tags": [ + "console" + ], + "description": "Return a list of all available plans.", + "responses": { + "200": { + "description": "Billing plan list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/billingPlanList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/get-plans.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "platform", + "description": "Platform type", + "required": false, + "schema": { + "type": "string", + "example": "appwrite", + "title": "Platform", + "oneOf": [ + { + "type": "string", + "enum": [ + "appwrite" + ], + "title": "appwrite" + }, + { + "type": "string", + "enum": [ + "imagine" + ], + "title": "imagine" + } + ], + "default": "appwrite" + }, + "in": "query" + } + ] + } + }, + "\/console\/plans\/{planId}": { + "get": { + "summary": "Get plan", + "operationId": "consoleGetPlan", + "tags": [ + "console" + ], + "description": "Get the details of a plan using its plan ID.", + "responses": { + "200": { + "description": "billingPlan", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/billingPlan" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/get-plan.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "planId", + "description": "Plan id", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/console\/postgres-extensions": { + "get": { + "summary": "List Postgres extensions", + "operationId": "consoleListPostgresExtensions", + "tags": [ + "console" + ], + "description": "Get the catalog of Postgres extensions that can be installed on a dedicated Postgres database.\n", + "responses": { + "200": { + "description": "Postgres extensions list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/postgresExtensionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/list-postgres-extensions.md", + "rate-limit": 100, + "rate-time": 3600, + "rate-key": "ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ] + } + }, + "\/console\/programs\/{programId}": { + "get": { + "summary": "Get program details", + "operationId": "consoleGetProgram", + "tags": [ + "console" + ], + "description": "Receive the details of a program using its ID.", + "responses": { + "201": { + "description": "Program", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/program" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/get-program.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "programId", + "description": "ID of the program", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/console\/programs\/{programId}\/memberships": { + "post": { + "summary": "Create program membership", + "operationId": "consoleCreateProgramMembership", + "tags": [ + "console" + ], + "description": "Create a new membership for an account to a program.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/create-program-membership.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "programId", + "description": "ID of the program", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/console\/regions": { + "get": { + "summary": "List Regions", + "operationId": "consoleListRegions", + "tags": [ + "console" + ], + "description": "Get all available regions for the console.", + "responses": { + "200": { + "description": "Regions list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/consoleRegionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/list-regions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ] + } + }, + "\/console\/resources": { + "get": { + "summary": "Check resource ID availability", + "operationId": "consoleGetResource", + "tags": [ + "console" + ], + "description": "Check if a resource ID is available.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/get-resource.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "value", + "description": "Resource value.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "query" + }, + { + "name": "type", + "description": "Resource type.", + "required": true, + "schema": { + "type": "string", + "example": "rules", + "title": "ConsoleResourceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "rules" + ], + "title": "rules" + } + ] + }, + "in": "query" + } + ] + } + }, + "\/console\/scopes\/organization": { + "get": { + "summary": "List organization scopes", + "operationId": "consoleListOrganizationScopes", + "tags": [ + "console" + ], + "description": "List all scopes available for organization API keys, along with a description for each scope.", + "responses": { + "200": { + "description": "Console Key Scopes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/consoleKeyScopeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "console", + "demo": "console\/list-organization-scopes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ] + } + }, + "\/console\/scopes\/project": { + "get": { + "summary": "List project scopes", + "operationId": "consoleListProjectScopes", + "tags": [ + "console" + ], + "description": "List all scopes available for project API keys, along with a description for each scope.", + "responses": { + "200": { + "description": "Console Key Scopes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/consoleKeyScopeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "console", + "demo": "console\/list-project-scopes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ] + } + }, + "\/console\/sources": { + "post": { + "summary": "Create source", + "operationId": "consoleCreateSource", + "tags": [ + "console" + ], + "description": "Create a new source.", + "responses": { + "201": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/create-source.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ref": { + "description": "Ref param", + "type": "string", + "example": "", + "nullable": true + }, + "referrer": { + "description": "Referrer", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "utmSource": { + "description": "Utm source", + "type": "string", + "example": "", + "nullable": true + }, + "utmCampaign": { + "description": "Utm campaign", + "type": "string", + "example": "", + "nullable": true + }, + "utmMedium": { + "description": "Utm medium", + "type": "string", + "example": "", + "nullable": true + } + } + } + } + } + } + } + }, + "\/console\/suggestions\/columns": { + "get": { + "summary": "Get column suggestions with size limits for a table, using database context and an optional user provided context", + "operationId": "consoleSuggestColumns", + "tags": [ + "console" + ], + "description": "Suggests column names and their size limits based on the provided table name. The API will also analyze other tables in the same database to provide context-aware suggestions, ensuring consistency across schema design. Users may optionally provide custom context to further refine the suggestions.", + "responses": { + "200": { + "description": "Columns List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/suggest-columns.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "query" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "query" + }, + { + "name": "context", + "description": "Optional user provided context to refine suggestions.", + "required": false, + "schema": { + "type": "string", + "example": "" + }, + "in": "query" + }, + { + "name": "min", + "description": "Minimum number of suggestions to generate.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 3 + }, + "in": "query" + }, + { + "name": "max", + "description": "Maximum number of suggestions to generate.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 7 + }, + "in": "query" + } + ] + } + }, + "\/console\/suggestions\/indexes": { + "get": { + "summary": "Get index suggestions for table columns, using database context", + "operationId": "consoleSuggestIndexes", + "tags": [ + "console" + ], + "description": "Suggests database indexes for table columns based on the provided table structure and existing columns. The API will also analyze the table's column types, names, and patterns to recommend optimal indexes that improve query performance for common database operations like filtering, sorting, and searching.", + "responses": { + "200": { + "description": "Column Indexes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnIndexList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/suggest-indexes.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "query" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "query" + }, + { + "name": "min", + "description": "Minimum number of suggestions to generate.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 1 + }, + "in": "query" + }, + { + "name": "max", + "description": "Maximum number of suggestions to generate.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 4 + }, + "in": "query" + } + ] + } + }, + "\/console\/suggestions\/queries": { + "get": { + "summary": "Get query suggestions for a list resource from free-text intent", + "operationId": "consoleSuggestQueries", + "tags": [ + "console" + ], + "description": "Suggest valid Appwrite query JSON objects for a supported list resource from free-text user intent. The endpoint picks a validator based on `resource` \u2014 for system resources it uses the static validator and its allowed attributes, and for user-owned table rows it loads the table schema and validates against those attributes at request time. The returned queries are guaranteed to parse and pass the relevant queries validator.\n", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/suggest-queries.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "resource", + "description": "Resource to generate queries for.", + "required": true, + "schema": { + "type": "string", + "example": "activities", + "title": "QuerySuggestionResource", + "oneOf": [ + { + "type": "string", + "enum": [ + "activities" + ], + "title": "activities" + }, + { + "type": "string", + "enum": [ + "activityevents" + ], + "title": "activity_events" + }, + { + "type": "string", + "enum": [ + "archives" + ], + "title": "archives" + }, + { + "type": "string", + "enum": [ + "credits" + ], + "title": "credits" + }, + { + "type": "string", + "enum": [ + "dnsrecords" + ], + "title": "dns_records" + }, + { + "type": "string", + "enum": [ + "domains" + ], + "title": "domains" + }, + { + "type": "string", + "enum": [ + "invoices" + ], + "title": "invoices" + }, + { + "type": "string", + "enum": [ + "paymentmethods" + ], + "title": "payment_methods" + }, + { + "type": "string", + "enum": [ + "policies" + ], + "title": "policies" + }, + { + "type": "string", + "enum": [ + "projects" + ], + "title": "projects" + }, + { + "type": "string", + "enum": [ + "restorations" + ], + "title": "restorations" + }, + { + "type": "string", + "enum": [ + "teamaggregations" + ], + "title": "team_aggregations" + }, + { + "type": "string", + "enum": [ + "teams" + ], + "title": "teams" + }, + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tables" + ], + "title": "tables" + }, + { + "type": "string", + "enum": [ + "rows" + ], + "title": "rows" + }, + { + "type": "string", + "enum": [ + "schedules" + ], + "title": "schedules" + }, + { + "type": "string", + "enum": [ + "platforms" + ], + "title": "platforms" + }, + { + "type": "string", + "enum": [ + "keys" + ], + "title": "keys" + }, + { + "type": "string", + "enum": [ + "devkeys" + ], + "title": "dev_keys" + }, + { + "type": "string", + "enum": [ + "webhooks" + ], + "title": "webhooks" + }, + { + "type": "string", + "enum": [ + "notifications" + ], + "title": "notifications" + }, + { + "type": "string", + "enum": [ + "certificates" + ], + "title": "certificates" + }, + { + "type": "string", + "enum": [ + "realtime" + ], + "title": "realtime" + }, + { + "type": "string", + "enum": [ + "rules" + ], + "title": "rules" + }, + { + "type": "string", + "enum": [ + "installations" + ], + "title": "installations" + }, + { + "type": "string", + "enum": [ + "repositories" + ], + "title": "repositories" + }, + { + "type": "string", + "enum": [ + "vcscomments" + ], + "title": "vcs_comments" + }, + { + "type": "string", + "enum": [ + "vcscommentlocks" + ], + "title": "vcs_comment_locks" + }, + { + "type": "string", + "enum": [ + "reports" + ], + "title": "reports" + }, + { + "type": "string", + "enum": [ + "insights" + ], + "title": "insights" + }, + { + "type": "string", + "enum": [ + "users" + ], + "title": "users" + }, + { + "type": "string", + "enum": [ + "cache" + ], + "title": "cache" + }, + { + "type": "string", + "enum": [ + "tokens" + ], + "title": "tokens" + }, + { + "type": "string", + "enum": [ + "authenticators" + ], + "title": "authenticators" + }, + { + "type": "string", + "enum": [ + "challenges" + ], + "title": "challenges" + }, + { + "type": "string", + "enum": [ + "sessions" + ], + "title": "sessions" + }, + { + "type": "string", + "enum": [ + "identities" + ], + "title": "identities" + }, + { + "type": "string", + "enum": [ + "memberships" + ], + "title": "memberships" + }, + { + "type": "string", + "enum": [ + "buckets" + ], + "title": "buckets" + }, + { + "type": "string", + "enum": [ + "providers" + ], + "title": "providers" + }, + { + "type": "string", + "enum": [ + "messages" + ], + "title": "messages" + }, + { + "type": "string", + "enum": [ + "topics" + ], + "title": "topics" + }, + { + "type": "string", + "enum": [ + "subscribers" + ], + "title": "subscribers" + }, + { + "type": "string", + "enum": [ + "targets" + ], + "title": "targets" + }, + { + "type": "string", + "enum": [ + "presencelogs" + ], + "title": "presence_logs" + }, + { + "type": "string", + "enum": [ + "companies" + ], + "title": "companies" + }, + { + "type": "string", + "enum": [ + "billingaddresses" + ], + "title": "billing_addresses" + }, + { + "type": "string", + "enum": [ + "billingaggregations" + ], + "title": "billing_aggregations" + }, + { + "type": "string", + "enum": [ + "billingaggregationresources" + ], + "title": "billing_aggregation_resources" + }, + { + "type": "string", + "enum": [ + "billingteamprojectaggregations" + ], + "title": "billing_team_project_aggregations" + }, + { + "type": "string", + "enum": [ + "billingteamaggregations_v2" + ], + "title": "billing_team_aggregations_v2" + }, + { + "type": "string", + "enum": [ + "billingteamaggregationresources" + ], + "title": "billing_team_aggregation_resources" + }, + { + "type": "string", + "enum": [ + "billinginvoices_v2" + ], + "title": "billing_invoices_v2" + }, + { + "type": "string", + "enum": [ + "billingaddons" + ], + "title": "billing_addons" + }, + { + "type": "string", + "enum": [ + "alerts" + ], + "title": "alerts" + }, + { + "type": "string", + "enum": [ + "payments" + ], + "title": "payments" + }, + { + "type": "string", + "enum": [ + "billingdiscounts" + ], + "title": "billing_discounts" + }, + { + "type": "string", + "enum": [ + "sources" + ], + "title": "sources" + }, + { + "type": "string", + "enum": [ + "deals" + ], + "title": "deals" + }, + { + "type": "string", + "enum": [ + "blocks" + ], + "title": "blocks" + }, + { + "type": "string", + "enum": [ + "threats" + ], + "title": "threats" + }, + { + "type": "string", + "enum": [ + "feedbacks" + ], + "title": "feedbacks" + }, + { + "type": "string", + "enum": [ + "disputes" + ], + "title": "disputes" + }, + { + "type": "string", + "enum": [ + "wafrules" + ], + "title": "waf_rules" + }, + { + "type": "string", + "enum": [ + "sh_installations" + ], + "title": "sh_installations" + }, + { + "type": "string", + "enum": [ + "migrationdatabases" + ], + "title": "migration_databases" + }, + { + "type": "string", + "enum": [ + "migrationprojects" + ], + "title": "migration_projects" + }, + { + "type": "string", + "enum": [ + "affiliatelinks" + ], + "title": "affiliate_links" + }, + { + "type": "string", + "enum": [ + "affiliatereferrals" + ], + "title": "affiliate_referrals" + }, + { + "type": "string", + "enum": [ + "affiliaterewards" + ], + "title": "affiliate_rewards" + }, + { + "type": "string", + "enum": [ + "apps" + ], + "title": "apps" + }, + { + "type": "string", + "enum": [ + "appsecrets" + ], + "title": "app_secrets" + }, + { + "type": "string", + "enum": [ + "appinstallations" + ], + "title": "app_installations" + }, + { + "type": "string", + "enum": [ + "appkeys" + ], + "title": "app_keys" + }, + { + "type": "string", + "enum": [ + "oauth2grants" + ], + "title": "oauth2_grants" + }, + { + "type": "string", + "enum": [ + "oauth2consents" + ], + "title": "oauth2_consents" + }, + { + "type": "string", + "enum": [ + "oauth2tokens" + ], + "title": "oauth2_tokens" + }, + { + "type": "string", + "enum": [ + "attributes" + ], + "title": "attributes" + }, + { + "type": "string", + "enum": [ + "indexes" + ], + "title": "indexes" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + }, + { + "type": "string", + "enum": [ + "deployments" + ], + "title": "deployments" + }, + { + "type": "string", + "enum": [ + "executions" + ], + "title": "executions" + }, + { + "type": "string", + "enum": [ + "variables" + ], + "title": "variables" + }, + { + "type": "string", + "enum": [ + "migrations" + ], + "title": "migrations" + }, + { + "type": "string", + "enum": [ + "resourcetokens" + ], + "title": "resource_tokens" + }, + { + "type": "string", + "enum": [ + "transactions" + ], + "title": "transactions" + }, + { + "type": "string", + "enum": [ + "transactionlogs" + ], + "title": "transaction_logs" + }, + { + "type": "string", + "enum": [ + "stats" + ], + "title": "stats" + }, + { + "type": "string", + "enum": [ + "dedicateddatabases" + ], + "title": "dedicated_databases" + }, + { + "type": "string", + "enum": [ + "dedicateddatabaseconfigs" + ], + "title": "dedicated_database_configs" + }, + { + "type": "string", + "enum": [ + "dedicateddatabaseruntimes" + ], + "title": "dedicated_database_runtimes" + }, + { + "type": "string", + "enum": [ + "dedicateddatabaseoperations" + ], + "title": "dedicated_database_operations" + }, + { + "type": "string", + "enum": [ + "dedicateddatabasebackups" + ], + "title": "dedicated_database_backups" + }, + { + "type": "string", + "enum": [ + "dedicateddatabaserestorations" + ], + "title": "dedicated_database_restorations" + }, + { + "type": "string", + "enum": [ + "dedicateddatabasebranches" + ], + "title": "dedicated_database_branches" + } + ] + }, + "in": "query" + }, + { + "name": "input", + "description": "Natural language query intent used to generate filters\/sorting\/pagination.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "query" + }, + { + "name": "databaseId", + "description": "Database ID. Required when resource is `tables` or `rows`.", + "required": false, + "schema": { + "type": "string", + "example": "" + }, + "in": "query" + }, + { + "name": "tableId", + "description": "Table ID. Required when resource is `rows`.", + "required": false, + "schema": { + "type": "string", + "example": "" + }, + "in": "query" + } + ] + } + }, + "\/console\/templates\/email\/{templateId}": { + "get": { + "summary": "Get email template", + "operationId": "consoleGetEmailTemplate", + "tags": [ + "console" + ], + "description": "Get the Appwrite built-in default email template for the specified type and locale. Always returns the unmodified default, ignoring any custom project overrides.", + "responses": { + "200": { + "description": "EmailTemplate", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/emailTemplate" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/get-email-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "templateId", + "description": "Email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession", + "required": true, + "schema": { + "type": "string", + "example": "verification", + "title": "ProjectEmailTemplateId", + "oneOf": [ + { + "type": "string", + "enum": [ + "verification" + ], + "title": "verification" + }, + { + "type": "string", + "enum": [ + "magicSession" + ], + "title": "magicSession" + }, + { + "type": "string", + "enum": [ + "recovery" + ], + "title": "recovery" + }, + { + "type": "string", + "enum": [ + "invitation" + ], + "title": "invitation" + }, + { + "type": "string", + "enum": [ + "mfaChallenge" + ], + "title": "mfaChallenge" + }, + { + "type": "string", + "enum": [ + "sessionAlert" + ], + "title": "sessionAlert" + }, + { + "type": "string", + "enum": [ + "otpSession" + ], + "title": "otpSession" + } + ] + }, + "in": "path" + }, + { + "name": "locale", + "description": "Template locale. If left empty, the fallback locale (en) will be used.", + "required": false, + "schema": { + "type": "string", + "example": "af", + "title": "ProjectEmailTemplateLocale", + "oneOf": [ + { + "type": "string", + "enum": [ + "af" + ], + "title": "af" + }, + { + "type": "string", + "enum": [ + "ar-ae" + ], + "title": "ar-ae" + }, + { + "type": "string", + "enum": [ + "ar-bh" + ], + "title": "ar-bh" + }, + { + "type": "string", + "enum": [ + "ar-dz" + ], + "title": "ar-dz" + }, + { + "type": "string", + "enum": [ + "ar-eg" + ], + "title": "ar-eg" + }, + { + "type": "string", + "enum": [ + "ar-iq" + ], + "title": "ar-iq" + }, + { + "type": "string", + "enum": [ + "ar-jo" + ], + "title": "ar-jo" + }, + { + "type": "string", + "enum": [ + "ar-kw" + ], + "title": "ar-kw" + }, + { + "type": "string", + "enum": [ + "ar-lb" + ], + "title": "ar-lb" + }, + { + "type": "string", + "enum": [ + "ar-ly" + ], + "title": "ar-ly" + }, + { + "type": "string", + "enum": [ + "ar-ma" + ], + "title": "ar-ma" + }, + { + "type": "string", + "enum": [ + "ar-om" + ], + "title": "ar-om" + }, + { + "type": "string", + "enum": [ + "ar-qa" + ], + "title": "ar-qa" + }, + { + "type": "string", + "enum": [ + "ar-sa" + ], + "title": "ar-sa" + }, + { + "type": "string", + "enum": [ + "ar-sy" + ], + "title": "ar-sy" + }, + { + "type": "string", + "enum": [ + "ar-tn" + ], + "title": "ar-tn" + }, + { + "type": "string", + "enum": [ + "ar-ye" + ], + "title": "ar-ye" + }, + { + "type": "string", + "enum": [ + "as" + ], + "title": "as" + }, + { + "type": "string", + "enum": [ + "az" + ], + "title": "az" + }, + { + "type": "string", + "enum": [ + "be" + ], + "title": "be" + }, + { + "type": "string", + "enum": [ + "bg" + ], + "title": "bg" + }, + { + "type": "string", + "enum": [ + "bh" + ], + "title": "bh" + }, + { + "type": "string", + "enum": [ + "bn" + ], + "title": "bn" + }, + { + "type": "string", + "enum": [ + "bs" + ], + "title": "bs" + }, + { + "type": "string", + "enum": [ + "ca" + ], + "title": "ca" + }, + { + "type": "string", + "enum": [ + "cs" + ], + "title": "cs" + }, + { + "type": "string", + "enum": [ + "cy" + ], + "title": "cy" + }, + { + "type": "string", + "enum": [ + "da" + ], + "title": "da" + }, + { + "type": "string", + "enum": [ + "de" + ], + "title": "de" + }, + { + "type": "string", + "enum": [ + "de-at" + ], + "title": "de-at" + }, + { + "type": "string", + "enum": [ + "de-ch" + ], + "title": "de-ch" + }, + { + "type": "string", + "enum": [ + "de-li" + ], + "title": "de-li" + }, + { + "type": "string", + "enum": [ + "de-lu" + ], + "title": "de-lu" + }, + { + "type": "string", + "enum": [ + "el" + ], + "title": "el" + }, + { + "type": "string", + "enum": [ + "en" + ], + "title": "en" + }, + { + "type": "string", + "enum": [ + "en-au" + ], + "title": "en-au" + }, + { + "type": "string", + "enum": [ + "en-bz" + ], + "title": "en-bz" + }, + { + "type": "string", + "enum": [ + "en-ca" + ], + "title": "en-ca" + }, + { + "type": "string", + "enum": [ + "en-gb" + ], + "title": "en-gb" + }, + { + "type": "string", + "enum": [ + "en-ie" + ], + "title": "en-ie" + }, + { + "type": "string", + "enum": [ + "en-jm" + ], + "title": "en-jm" + }, + { + "type": "string", + "enum": [ + "en-nz" + ], + "title": "en-nz" + }, + { + "type": "string", + "enum": [ + "en-tt" + ], + "title": "en-tt" + }, + { + "type": "string", + "enum": [ + "en-us" + ], + "title": "en-us" + }, + { + "type": "string", + "enum": [ + "en-za" + ], + "title": "en-za" + }, + { + "type": "string", + "enum": [ + "eo" + ], + "title": "eo" + }, + { + "type": "string", + "enum": [ + "es" + ], + "title": "es" + }, + { + "type": "string", + "enum": [ + "es-ar" + ], + "title": "es-ar" + }, + { + "type": "string", + "enum": [ + "es-bo" + ], + "title": "es-bo" + }, + { + "type": "string", + "enum": [ + "es-cl" + ], + "title": "es-cl" + }, + { + "type": "string", + "enum": [ + "es-co" + ], + "title": "es-co" + }, + { + "type": "string", + "enum": [ + "es-cr" + ], + "title": "es-cr" + }, + { + "type": "string", + "enum": [ + "es-do" + ], + "title": "es-do" + }, + { + "type": "string", + "enum": [ + "es-ec" + ], + "title": "es-ec" + }, + { + "type": "string", + "enum": [ + "es-gt" + ], + "title": "es-gt" + }, + { + "type": "string", + "enum": [ + "es-hn" + ], + "title": "es-hn" + }, + { + "type": "string", + "enum": [ + "es-mx" + ], + "title": "es-mx" + }, + { + "type": "string", + "enum": [ + "es-ni" + ], + "title": "es-ni" + }, + { + "type": "string", + "enum": [ + "es-pa" + ], + "title": "es-pa" + }, + { + "type": "string", + "enum": [ + "es-pe" + ], + "title": "es-pe" + }, + { + "type": "string", + "enum": [ + "es-pr" + ], + "title": "es-pr" + }, + { + "type": "string", + "enum": [ + "es-py" + ], + "title": "es-py" + }, + { + "type": "string", + "enum": [ + "es-sv" + ], + "title": "es-sv" + }, + { + "type": "string", + "enum": [ + "es-uy" + ], + "title": "es-uy" + }, + { + "type": "string", + "enum": [ + "es-ve" + ], + "title": "es-ve" + }, + { + "type": "string", + "enum": [ + "et" + ], + "title": "et" + }, + { + "type": "string", + "enum": [ + "eu" + ], + "title": "eu" + }, + { + "type": "string", + "enum": [ + "fa" + ], + "title": "fa" + }, + { + "type": "string", + "enum": [ + "fi" + ], + "title": "fi" + }, + { + "type": "string", + "enum": [ + "fo" + ], + "title": "fo" + }, + { + "type": "string", + "enum": [ + "fr" + ], + "title": "fr" + }, + { + "type": "string", + "enum": [ + "fr-be" + ], + "title": "fr-be" + }, + { + "type": "string", + "enum": [ + "fr-ca" + ], + "title": "fr-ca" + }, + { + "type": "string", + "enum": [ + "fr-ch" + ], + "title": "fr-ch" + }, + { + "type": "string", + "enum": [ + "fr-lu" + ], + "title": "fr-lu" + }, + { + "type": "string", + "enum": [ + "ga" + ], + "title": "ga" + }, + { + "type": "string", + "enum": [ + "gd" + ], + "title": "gd" + }, + { + "type": "string", + "enum": [ + "he" + ], + "title": "he" + }, + { + "type": "string", + "enum": [ + "hi" + ], + "title": "hi" + }, + { + "type": "string", + "enum": [ + "hr" + ], + "title": "hr" + }, + { + "type": "string", + "enum": [ + "hu" + ], + "title": "hu" + }, + { + "type": "string", + "enum": [ + "id" + ], + "title": "id" + }, + { + "type": "string", + "enum": [ + "is" + ], + "title": "is" + }, + { + "type": "string", + "enum": [ + "it" + ], + "title": "it" + }, + { + "type": "string", + "enum": [ + "it-ch" + ], + "title": "it-ch" + }, + { + "type": "string", + "enum": [ + "ja" + ], + "title": "ja" + }, + { + "type": "string", + "enum": [ + "ji" + ], + "title": "ji" + }, + { + "type": "string", + "enum": [ + "ko" + ], + "title": "ko" + }, + { + "type": "string", + "enum": [ + "ku" + ], + "title": "ku" + }, + { + "type": "string", + "enum": [ + "lt" + ], + "title": "lt" + }, + { + "type": "string", + "enum": [ + "lv" + ], + "title": "lv" + }, + { + "type": "string", + "enum": [ + "mk" + ], + "title": "mk" + }, + { + "type": "string", + "enum": [ + "ml" + ], + "title": "ml" + }, + { + "type": "string", + "enum": [ + "ms" + ], + "title": "ms" + }, + { + "type": "string", + "enum": [ + "mt" + ], + "title": "mt" + }, + { + "type": "string", + "enum": [ + "nb" + ], + "title": "nb" + }, + { + "type": "string", + "enum": [ + "ne" + ], + "title": "ne" + }, + { + "type": "string", + "enum": [ + "nl" + ], + "title": "nl" + }, + { + "type": "string", + "enum": [ + "nl-be" + ], + "title": "nl-be" + }, + { + "type": "string", + "enum": [ + "nn" + ], + "title": "nn" + }, + { + "type": "string", + "enum": [ + "no" + ], + "title": "no" + }, + { + "type": "string", + "enum": [ + "pa" + ], + "title": "pa" + }, + { + "type": "string", + "enum": [ + "pl" + ], + "title": "pl" + }, + { + "type": "string", + "enum": [ + "pt" + ], + "title": "pt" + }, + { + "type": "string", + "enum": [ + "pt-br" + ], + "title": "pt-br" + }, + { + "type": "string", + "enum": [ + "rm" + ], + "title": "rm" + }, + { + "type": "string", + "enum": [ + "ro" + ], + "title": "ro" + }, + { + "type": "string", + "enum": [ + "ro-md" + ], + "title": "ro-md" + }, + { + "type": "string", + "enum": [ + "ru" + ], + "title": "ru" + }, + { + "type": "string", + "enum": [ + "ru-md" + ], + "title": "ru-md" + }, + { + "type": "string", + "enum": [ + "sb" + ], + "title": "sb" + }, + { + "type": "string", + "enum": [ + "sk" + ], + "title": "sk" + }, + { + "type": "string", + "enum": [ + "sl" + ], + "title": "sl" + }, + { + "type": "string", + "enum": [ + "sq" + ], + "title": "sq" + }, + { + "type": "string", + "enum": [ + "sr" + ], + "title": "sr" + }, + { + "type": "string", + "enum": [ + "sv" + ], + "title": "sv" + }, + { + "type": "string", + "enum": [ + "sv-fi" + ], + "title": "sv-fi" + }, + { + "type": "string", + "enum": [ + "th" + ], + "title": "th" + }, + { + "type": "string", + "enum": [ + "tn" + ], + "title": "tn" + }, + { + "type": "string", + "enum": [ + "tr" + ], + "title": "tr" + }, + { + "type": "string", + "enum": [ + "ts" + ], + "title": "ts" + }, + { + "type": "string", + "enum": [ + "ua" + ], + "title": "ua" + }, + { + "type": "string", + "enum": [ + "ur" + ], + "title": "ur" + }, + { + "type": "string", + "enum": [ + "ve" + ], + "title": "ve" + }, + { + "type": "string", + "enum": [ + "vi" + ], + "title": "vi" + }, + { + "type": "string", + "enum": [ + "xh" + ], + "title": "xh" + }, + { + "type": "string", + "enum": [ + "zh-cn" + ], + "title": "zh-cn" + }, + { + "type": "string", + "enum": [ + "zh-hk" + ], + "title": "zh-hk" + }, + { + "type": "string", + "enum": [ + "zh-sg" + ], + "title": "zh-sg" + }, + { + "type": "string", + "enum": [ + "zh-tw" + ], + "title": "zh-tw" + }, + { + "type": "string", + "enum": [ + "zu" + ], + "title": "zu" + } + ], + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/console\/variables": { + "get": { + "summary": "Get variables", + "operationId": "consoleVariables", + "tags": [ + "console" + ], + "description": "Get all Environment Variables that are relevant for the console.", + "responses": { + "200": { + "description": "Console Variables", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/consoleVariables" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "console", + "demo": "console\/variables.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ] + } + }, + "\/databases": { + "get": { + "summary": "List databases", + "operationId": "databasesList", + "tags": [ + "databases" + ], + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Databases List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.list" + }, + "methods": [ + { + "name": "list", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + }, + "parameters": [ + "queries", + "search", + "total" + ], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/databaseList" + } + ], + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "demo": "databases\/list.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.list" + } + } + ], + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "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: name", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "databasesCreate", + "tags": [ + "databases" + ], + "description": "Create a new Database.\n", + "responses": { + "201": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.create" + }, + "methods": [ + { + "name": "create", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + }, + "parameters": [ + "databaseId", + "name", + "enabled" + ], + "required": [ + "databaseId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/database" + } + ], + "description": "Create a new Database.\n", + "demo": "databases\/create.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.create" + } + } + ], + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "" + }, + "enabled": { + "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/databases\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "databasesListTransactions", + "tags": [ + "databases" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rows.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listTransactions" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + }, + "client": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "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).", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "databasesCreateTransaction", + "tags": [ + "databases" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createTransaction" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + }, + "client": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/databases\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "databasesGetTransaction", + "tags": [ + "databases" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rows.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getTransaction" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + }, + "client": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "databasesUpdateTransaction", + "tags": [ + "databases" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTransaction" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + }, + "client": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "databasesDeleteTransaction", + "tags": [ + "databases" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteTransaction" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + }, + "client": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/databases\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "databasesCreateOperations", + "tags": [ + "databases" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createOperations" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + }, + "client": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "", + "collectionId": "", + "documentId": "", + "data": { + "name": "Walter O'Brien" + } + } + ], + "items": { + "type": "object" + } + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "databasesGet", + "tags": [ + "databases" + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.get" + }, + "methods": [ + { + "name": "get", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + }, + "parameters": [ + "databaseId" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/database" + } + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "demo": "databases\/get.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.get" + } + } + ], + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update database", + "operationId": "databasesUpdate", + "tags": [ + "databases" + ], + "description": "Update a database by its unique ID.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.update" + }, + "methods": [ + { + "name": "update", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + }, + "parameters": [ + "databaseId", + "name", + "enabled" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/database" + } + ], + "description": "Update a database by its unique ID.", + "demo": "databases\/update.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.update" + } + } + ], + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "" + }, + "enabled": { + "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "databasesDelete", + "tags": [ + "databases" + ], + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.delete" + }, + "methods": [ + { + "name": "delete", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + }, + "parameters": [ + "databaseId" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "demo": "databases\/delete.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.delete" + } + } + ], + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/databases\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "databasesListCollections", + "tags": [ + "databases" + ], + "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Collections List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collectionList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/list-collections.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listTables" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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: name, enabled, documentSecurity", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create collections", + "operationId": "databasesCreateCollection", + "tags": [ + "databases" + ], + "description": "Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/create-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createTable" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "collectionId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "" + }, + "permissions": { + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "attributes": { + "description": "Array of attribute definitions to create. Each attribute should contain: key (string), type (string: string, varchar, text, mediumtext, longtext, integer, bigint, double, boolean, datetime, point, linestring, polygon, email, url, ip, enum), size (integer, required for string and varchar types), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", + "type": "array", + "default": [], + "items": { + "type": "object" + } + }, + "indexes": { + "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of attribute keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", + "type": "array", + "default": [], + "items": { + "type": "object" + } + } + }, + "required": [ + "collectionId", + "name" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}": { + "get": { + "summary": "Get collection", + "operationId": "databasesGetCollection", + "tags": [ + "databases" + ], + "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", + "responses": { + "200": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/get-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getTable" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update collection", + "operationId": "databasesUpdateCollection", + "tags": [ + "databases" + ], + "description": "Update a collection by its unique ID.", + "responses": { + "200": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/update-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTable" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "purge": { + "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", + "type": "boolean", + "default": false, + "example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete collection", + "operationId": "databasesDeleteCollection", + "tags": [ + "databases" + ], + "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/delete-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteTable" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes": { + "get": { + "summary": "List attributes", + "operationId": "databasesListAttributes", + "tags": [ + "databases" + ], + "description": "List attributes in the collection.", + "responses": { + "200": { + "description": "Attributes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/list-attributes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listColumns" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "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: key, type, size, required, array, status, error", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/bigint": { + "post": { + "summary": "Create bigint attribute", + "operationId": "databasesCreateBigIntAttribute", + "tags": [ + "databases" + ], + "description": "Create a bigint attribute. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "AttributeBigInt", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeBigint" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-big-int-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createBigIntColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 1000000, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/bigint\/{key}": { + "patch": { + "summary": "Update bigint attribute", + "operationId": "databasesUpdateBigIntAttribute", + "tags": [ + "databases" + ], + "description": "Update a bigint attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeBigInt", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeBigint" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-big-int-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateBigIntColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 1000000, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean": { + "post": { + "summary": "Create boolean attribute", + "operationId": "databasesCreateBooleanAttribute", + "tags": [ + "databases" + ], + "description": "Create a boolean attribute.\n", + "responses": { + "202": { + "description": "AttributeBoolean", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeBoolean" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-boolean-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createBooleanColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "boolean", + "example": false, + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean\/{key}": { + "patch": { + "summary": "Update boolean attribute", + "operationId": "databasesUpdateBooleanAttribute", + "tags": [ + "databases" + ], + "description": "Update a boolean attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributeBoolean", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeBoolean" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-boolean-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateBooleanColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "boolean", + "example": false, + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/datetime": { + "post": { + "summary": "Create datetime attribute", + "operationId": "databasesCreateDatetimeAttribute", + "tags": [ + "databases" + ], + "description": "Create a date time attribute according to the ISO 8601 standard.", + "responses": { + "202": { + "description": "AttributeDatetime", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeDatetime" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-datetime-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createDatetimeColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for the attribute in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/datetime\/{key}": { + "patch": { + "summary": "Update datetime attribute", + "operationId": "databasesUpdateDatetimeAttribute", + "tags": [ + "databases" + ], + "description": "Update a date time attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributeDatetime", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeDatetime" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-datetime-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateDatetimeColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email": { + "post": { + "summary": "Create email attribute", + "operationId": "databasesCreateEmailAttribute", + "tags": [ + "databases" + ], + "description": "Create an email attribute.\n", + "responses": { + "202": { + "description": "AttributeEmail", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeEmail" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-email-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createEmailColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email\/{key}": { + "patch": { + "summary": "Update email attribute", + "operationId": "databasesUpdateEmailAttribute", + "tags": [ + "databases" + ], + "description": "Update an email attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeEmail", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeEmail" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-email-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateEmailColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/enum": { + "post": { + "summary": "Create enum attribute", + "operationId": "databasesCreateEnumAttribute", + "tags": [ + "databases" + ], + "description": "Create an enum attribute. The `elements` param acts as a white-list of accepted values for this attribute. \n", + "responses": { + "202": { + "description": "AttributeEnum", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeEnum" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-enum-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createEnumColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "" + }, + "elements": { + "description": "Array of enum values.", + "type": "array", + "example": [ + "active", + "inactive" + ], + "items": { + "type": "string" + } + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "active", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "elements", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/enum\/{key}": { + "patch": { + "summary": "Update enum attribute", + "operationId": "databasesUpdateEnumAttribute", + "tags": [ + "databases" + ], + "description": "Update an enum attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeEnum", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeEnum" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-enum-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateEnumColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "elements": { + "description": "Updated list of enum values.", + "type": "array", + "example": [ + "active", + "inactive" + ], + "items": { + "type": "string" + } + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "active", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "", + "nullable": true + } + }, + "required": [ + "elements", + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float": { + "post": { + "summary": "Create float attribute", + "operationId": "databasesCreateFloatAttribute", + "tags": [ + "databases" + ], + "description": "Create a float attribute. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "AttributeFloat", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeFloat" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-float-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createFloatColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value.", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "max": { + "description": "Maximum value.", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when required.", + "type": "number", + "example": 10.5, + "format": "float", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float\/{key}": { + "patch": { + "summary": "Update float attribute", + "operationId": "databasesUpdateFloatAttribute", + "tags": [ + "databases" + ], + "description": "Update a float attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeFloat", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeFloat" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-float-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateFloatColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value.", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "max": { + "description": "Maximum value.", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when required.", + "type": "number", + "example": 10.5, + "format": "float", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer": { + "post": { + "summary": "Create integer attribute", + "operationId": "databasesCreateIntegerAttribute", + "tags": [ + "databases" + ], + "description": "Create an integer attribute. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "AttributeInteger", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeInteger" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-integer-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createIntegerColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 100, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "integer", + "example": 10, + "format": "int64", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer\/{key}": { + "patch": { + "summary": "Update integer attribute", + "operationId": "databasesUpdateIntegerAttribute", + "tags": [ + "databases" + ], + "description": "Update an integer attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeInteger", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeInteger" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-integer-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateIntegerColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 100, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "integer", + "example": 10, + "format": "int64", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/ip": { + "post": { + "summary": "Create IP address attribute", + "operationId": "databasesCreateIpAttribute", + "tags": [ + "databases" + ], + "description": "Create IP address attribute.\n", + "responses": { + "202": { + "description": "AttributeIP", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeIp" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-ip-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createIpColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "string", + "example": "192.0.2.0", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/ip\/{key}": { + "patch": { + "summary": "Update IP address attribute", + "operationId": "databasesUpdateIpAttribute", + "tags": [ + "databases" + ], + "description": "Update an ip attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeIP", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeIp" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-ip-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateIpColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "string", + "example": "192.0.2.0", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/line": { + "post": { + "summary": "Create line attribute", + "operationId": "databasesCreateLineAttribute", + "tags": [ + "databases" + ], + "description": "Create a geometric line attribute.", + "responses": { + "202": { + "description": "AttributeLine", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeLine" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-line-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createLineColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", + "type": "array", + "example": [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/line\/{key}": { + "patch": { + "summary": "Update line attribute", + "operationId": "databasesUpdateLineAttribute", + "tags": [ + "databases" + ], + "description": "Update a line attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributeLine", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeLine" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-line-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateLineColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", + "type": "array", + "example": [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/longtext": { + "post": { + "summary": "Create longtext attribute", + "operationId": "databasesCreateLongtextAttribute", + "tags": [ + "databases" + ], + "description": "Create a longtext attribute.\n", + "responses": { + "202": { + "description": "AttributeLongtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeLongtext" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-longtext-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createLongtextColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/longtext\/{key}": { + "patch": { + "summary": "Update longtext attribute", + "operationId": "databasesUpdateLongtextAttribute", + "tags": [ + "databases" + ], + "description": "Update a longtext attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeLongtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeLongtext" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-longtext-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateLongtextColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/mediumtext": { + "post": { + "summary": "Create mediumtext attribute", + "operationId": "databasesCreateMediumtextAttribute", + "tags": [ + "databases" + ], + "description": "Create a mediumtext attribute.\n", + "responses": { + "202": { + "description": "AttributeMediumtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeMediumtext" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-mediumtext-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createMediumtextColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/mediumtext\/{key}": { + "patch": { + "summary": "Update mediumtext attribute", + "operationId": "databasesUpdateMediumtextAttribute", + "tags": [ + "databases" + ], + "description": "Update a mediumtext attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeMediumtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeMediumtext" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-mediumtext-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateMediumtextColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/point": { + "post": { + "summary": "Create point attribute", + "operationId": "databasesCreatePointAttribute", + "tags": [ + "databases" + ], + "description": "Create a geometric point attribute.", + "responses": { + "202": { + "description": "AttributePoint", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributePoint" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-point-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createPointColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", + "type": "array", + "example": [ + 1, + 2 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/point\/{key}": { + "patch": { + "summary": "Update point attribute", + "operationId": "databasesUpdatePointAttribute", + "tags": [ + "databases" + ], + "description": "Update a point attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributePoint", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributePoint" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-point-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updatePointColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", + "type": "array", + "example": [ + 1, + 2 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/polygon": { + "post": { + "summary": "Create polygon attribute", + "operationId": "databasesCreatePolygonAttribute", + "tags": [ + "databases" + ], + "description": "Create a geometric polygon attribute.", + "responses": { + "202": { + "description": "AttributePolygon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributePolygon" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-polygon-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createPolygonColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", + "type": "array", + "example": [ + [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ], + [ + 1, + 2 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/polygon\/{key}": { + "patch": { + "summary": "Update polygon attribute", + "operationId": "databasesUpdatePolygonAttribute", + "tags": [ + "databases" + ], + "description": "Update a polygon attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributePolygon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributePolygon" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-polygon-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updatePolygonColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", + "type": "array", + "example": [ + [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ], + [ + 1, + 2 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship": { + "post": { + "summary": "Create relationship attribute", + "operationId": "databasesCreateRelationshipAttribute", + "tags": [ + "databases" + ], + "description": "Create relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", + "responses": { + "202": { + "description": "AttributeRelationship", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeRelationship" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-relationship-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRelationshipColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "relatedCollectionId": { + "description": "Related Collection ID.", + "type": "string", + "example": "" + }, + "type": { + "description": "Relationship type. Possible values are: oneToOne, oneToMany, manyToOne, manyToMany.", + "type": "string", + "example": "oneToOne", + "title": "RelationshipType", + "oneOf": [ + { + "type": "string", + "enum": [ + "oneToOne" + ], + "title": "oneToOne" + }, + { + "type": "string", + "enum": [ + "manyToOne" + ], + "title": "manyToOne" + }, + { + "type": "string", + "enum": [ + "manyToMany" + ], + "title": "manyToMany" + }, + { + "type": "string", + "enum": [ + "oneToMany" + ], + "title": "oneToMany" + } + ] + }, + "twoWay": { + "description": "Is Two Way?", + "type": "boolean", + "default": false, + "example": false + }, + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "", + "nullable": true + }, + "twoWayKey": { + "description": "Two Way Attribute Key.", + "type": "string", + "example": "", + "nullable": true + }, + "onDelete": { + "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", + "type": "string", + "default": "restrict", + "example": "cascade", + "title": "RelationMutate", + "oneOf": [ + { + "type": "string", + "enum": [ + "cascade" + ], + "title": "cascade" + }, + { + "type": "string", + "enum": [ + "restrict" + ], + "title": "restrict" + }, + { + "type": "string", + "enum": [ + "setNull" + ], + "title": "setNull" + } + ] + } + }, + "required": [ + "relatedCollectionId", + "type" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship\/{key}": { + "patch": { + "summary": "Update relationship attribute", + "operationId": "databasesUpdateRelationshipAttribute", + "tags": [ + "databases" + ], + "description": "Update relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", + "responses": { + "200": { + "description": "AttributeRelationship", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeRelationship" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-relationship-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateRelationshipColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "onDelete": { + "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", + "type": "string", + "example": "cascade", + "title": "RelationMutate", + "oneOf": [ + { + "type": "string", + "enum": [ + "cascade" + ], + "title": "cascade" + }, + { + "type": "string", + "enum": [ + "restrict" + ], + "title": "restrict" + }, + { + "type": "string", + "enum": [ + "setNull" + ], + "title": "setNull" + } + ] + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "", + "nullable": true + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string": { + "post": { + "summary": "Create string attribute", + "operationId": "databasesCreateStringAttribute", + "tags": [ + "databases" + ], + "description": "Create a string attribute.\n", + "responses": { + "202": { + "description": "AttributeString", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeString" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-string-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createStringColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "" + }, + "size": { + "description": "Attribute size for text attributes, in number of characters.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "size", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string\/{key}": { + "patch": { + "summary": "Update string attribute", + "operationId": "databasesUpdateStringAttribute", + "tags": [ + "databases" + ], + "description": "Update a string attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeString", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeString" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-string-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateStringColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "size": { + "description": "Maximum size of the string attribute.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text": { + "post": { + "summary": "Create text attribute", + "operationId": "databasesCreateTextAttribute", + "tags": [ + "databases" + ], + "description": "Create a text attribute.\n", + "responses": { + "202": { + "description": "AttributeText", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeText" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-text-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createTextColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text\/{key}": { + "patch": { + "summary": "Update text attribute", + "operationId": "databasesUpdateTextAttribute", + "tags": [ + "databases" + ], + "description": "Update a text attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeText", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeText" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-text-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTextColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url": { + "post": { + "summary": "Create URL attribute", + "operationId": "databasesCreateUrlAttribute", + "tags": [ + "databases" + ], + "description": "Create a URL attribute.\n", + "responses": { + "202": { + "description": "AttributeURL", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeUrl" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-url-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createUrlColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url\/{key}": { + "patch": { + "summary": "Update URL attribute", + "operationId": "databasesUpdateUrlAttribute", + "tags": [ + "databases" + ], + "description": "Update an url attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeURL", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeUrl" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-url-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateUrlColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar": { + "post": { + "summary": "Create varchar attribute", + "operationId": "databasesCreateVarcharAttribute", + "tags": [ + "databases" + ], + "description": "Create a varchar attribute.\n", + "responses": { + "202": { + "description": "AttributeVarchar", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeVarchar" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-varchar-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createVarcharColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "" + }, + "size": { + "description": "Attribute size for varchar attributes, in number of characters. Maximum size is 16381.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "size", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar\/{key}": { + "patch": { + "summary": "Update varchar attribute", + "operationId": "databasesUpdateVarcharAttribute", + "tags": [ + "databases" + ], + "description": "Update a varchar attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeVarchar", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeVarchar" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-varchar-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateVarcharColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "size": { + "description": "Maximum size of the varchar attribute.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/{key}": { + "get": { + "summary": "Get attribute", + "operationId": "databasesGetAttribute", + "tags": [ + "databases" + ], + "description": "Get attribute by ID.", + "responses": { + "200": { + "description": "AttributeBoolean, or AttributeInteger, or AttributeFloat, or AttributeEmail, or AttributeEnum, or AttributeURL, or AttributeIP, or AttributeDatetime, or AttributeRelationship, or AttributeString", + "content": { + "application\/json": { + "schema": { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/attributeBoolean" + }, + { + "$ref": "#\/components\/schemas\/attributeInteger" + }, + { + "$ref": "#\/components\/schemas\/attributeFloat" + }, + { + "$ref": "#\/components\/schemas\/attributeEmail" + }, + { + "$ref": "#\/components\/schemas\/attributeEnum" + }, + { + "$ref": "#\/components\/schemas\/attributeUrl" + }, + { + "$ref": "#\/components\/schemas\/attributeIp" + }, + { + "$ref": "#\/components\/schemas\/attributeDatetime" + }, + { + "$ref": "#\/components\/schemas\/attributeRelationship" + }, + { + "$ref": "#\/components\/schemas\/attributeString" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "boolean": "#\/components\/schemas\/attributeBoolean", + "integer": "#\/components\/schemas\/attributeInteger", + "double": "#\/components\/schemas\/attributeFloat", + "string": "#\/components\/schemas\/attributeString", + "datetime": "#\/components\/schemas\/attributeDatetime", + "relationship": "#\/components\/schemas\/attributeRelationship" + }, + "x-mapping": { + "#\/components\/schemas\/attributeBoolean": { + "type": "boolean" + }, + "#\/components\/schemas\/attributeInteger": { + "type": "integer" + }, + "#\/components\/schemas\/attributeFloat": { + "type": "double" + }, + "#\/components\/schemas\/attributeEmail": { + "type": "string", + "format": "email" + }, + "#\/components\/schemas\/attributeEnum": { + "type": "string", + "format": "enum" + }, + "#\/components\/schemas\/attributeUrl": { + "type": "string", + "format": "url" + }, + "#\/components\/schemas\/attributeIp": { + "type": "string", + "format": "ip" + }, + "#\/components\/schemas\/attributeDatetime": { + "type": "datetime" + }, + "#\/components\/schemas\/attributeRelationship": { + "type": "relationship" + }, + "#\/components\/schemas\/attributeString": { + "type": "string" + } + } + } + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/get-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete attribute", + "operationId": "databasesDeleteAttribute", + "tags": [ + "databases" + ], + "description": "Deletes an attribute.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/delete-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteColumn" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents": { + "get": { + "summary": "List documents", + "operationId": "databasesListDocuments", + "tags": [ + "databases" + ], + "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/list-documents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listRows" + }, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create document", + "operationId": "databasesCreateDocument", + "tags": [ + "databases" + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRow" + }, + "methods": [ + { + "name": "createDocument", + "namespace": "databases", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "Create document", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "demo": "databases\/create-document.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRow" + } + }, + { + "name": "createDocuments", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "desc": "Create documents", + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "demo": "databases\/create-documents.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRows" + } + } + ], + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection). Make sure to define attributes before creating documents.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documentId": { + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "data": { + "description": "Document data as JSON object.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "documents": { + "description": "Array of documents data as JSON objects.", + "type": "array", + "default": [], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "", + "nullable": true + } + }, + "required": [ + "documentId", + "data" + ] + } + } + } + } + }, + "put": { + "summary": "Upsert documents", + "operationId": "databasesUpsertDocuments", + "tags": [ + "databases" + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.\n", + "responses": { + "201": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRows" + }, + "methods": [ + { + "name": "upsertDocuments", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.\n", + "demo": "databases\/upsert-documents.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRows" + } + } + ], + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documents": { + "description": "Array of document data as JSON objects. May contain partial documents.", + "type": "array", + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "", + "nullable": true + } + }, + "required": [ + "documents" + ] + } + } + } + } + }, + "patch": { + "summary": "Update documents", + "operationId": "databasesUpdateDocuments", + "tags": [ + "databases" + ], + "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/update-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateRows" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "type": "object", + "default": [], + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "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.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete documents", + "operationId": "databasesDeleteDocuments", + "tags": [ + "databases" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteRows" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "" + }, + "in": "query" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "databasesGetDocument", + "tags": [ + "databases" + ], + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/get-document.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getRow" + }, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "databasesUpsertDocument", + "tags": [ + "databases" + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRow" + }, + "methods": [ + { + "name": "upsertDocument", + "namespace": "databases", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "demo": "databases\/upsert-document.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRow" + } + } + ], + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-appwrite": { + "idGenerator": "ID.unique" + }, + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include all required attributes of the document to be created or updated.", + "type": "object", + "default": [], + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "", + "nullable": true + } + } + } + } + } + } + }, + "patch": { + "summary": "Update document", + "operationId": "databasesUpdateDocument", + "tags": [ + "databases" + ], + "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateRow" + }, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "type": "object", + "default": [], + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete document", + "operationId": "databasesDeleteDocument", + "tags": [ + "databases" + ], + "description": "Delete a document by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteRow" + }, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "" + }, + "in": "query" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "patch": { + "summary": "Decrement document attribute", + "operationId": "databasesDecrementDocumentAttribute", + "tags": [ + "databases" + ], + "description": "Decrement a specific attribute of a document by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/decrement-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.decrementRowColumn" + }, + "auth": { + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + }, + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "min": { + "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "", + "nullable": true + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "patch": { + "summary": "Increment document attribute", + "operationId": "databasesIncrementDocumentAttribute", + "tags": [ + "databases" + ], + "description": "Increment a specific attribute of a document by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/increment-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.incrementRowColumn" + }, + "auth": { + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + }, + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "max": { + "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "", + "nullable": true + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "databasesListIndexes", + "tags": [ + "databases" + ], + "description": "List indexes in the collection.", + "responses": { + "200": { + "description": "Indexes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/indexList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "indexes", + "demo": "databases\/list-indexes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listIndexes" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "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: key, type, status, attributes, error", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create index", + "operationId": "databasesCreateIndex", + "tags": [ + "databases" + ], + "description": "Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes can be `key`, `fulltext`, and `unique`.", + "responses": { + "202": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "indexes", + "demo": "databases\/create-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createIndex" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Index Key.", + "type": "string", + "example": "" + }, + "type": { + "description": "Index type.", + "type": "string", + "example": "key", + "title": "DatabasesIndexType", + "oneOf": [ + { + "type": "string", + "enum": [ + "key" + ], + "title": "key" + }, + { + "type": "string", + "enum": [ + "fulltext" + ], + "title": "fulltext" + }, + { + "type": "string", + "enum": [ + "unique" + ], + "title": "unique" + }, + { + "type": "string", + "enum": [ + "spatial" + ], + "title": "spatial" + } + ] + }, + "attributes": { + "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", + "type": "array", + "items": { + "type": "string" + } + }, + "orders": { + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "type": "array", + "default": [], + "items": { + "title": "OrderBy", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "asc" + ], + "title": "asc" + }, + { + "type": "string", + "enum": [ + "desc" + ], + "title": "desc" + } + ] + } + }, + "lengths": { + "description": "Length of index. Maximum of 100", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "attributes" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "databasesGetIndex", + "tags": [ + "databases" + ], + "description": "Get an index by its unique ID.", + "responses": { + "200": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "indexes", + "demo": "databases\/get-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getIndex" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "databasesDeleteIndex", + "tags": [ + "databases" + ], + "description": "Delete an index.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "indexes", + "demo": "databases\/delete-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteIndex" + }, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb": { + "get": { + "summary": "List databases", + "operationId": "documentsDBList", + "tags": [ + "documentsDB" + ], + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Databases List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "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 columns: name", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "documentsDBCreate", + "tags": [ + "documentsDB" + ], + "description": "Create a new Database.\n", + "responses": { + "201": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "" + }, + "enabled": { + "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", + "type": "string", + "default": "serverless", + "example": "serverless" + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Requires a dedicated `specification`; must be 0 for a serverless database. High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Requires a dedicated `specification`; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/documentsdb\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "documentsDBListSpecifications", + "tags": [ + "documentsDB" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/documentsdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "documentsDBListTransactions", + "tags": [ + "documentsDB" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + }, + "client": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "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).", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "documentsDBCreateTransaction", + "tags": [ + "documentsDB" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + }, + "client": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/documentsdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "documentsDBGetTransaction", + "tags": [ + "documentsDB" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + }, + "client": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "documentsDBUpdateTransaction", + "tags": [ + "documentsDB" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + }, + "client": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "documentsDBDeleteTransaction", + "tags": [ + "documentsDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + }, + "client": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "documentsDBCreateOperations", + "tags": [ + "documentsDB" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "server": { + "Project": [], + "Key": [] + }, + "client": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "", + "collectionId": "", + "documentId": "", + "data": { + "name": "Walter O'Brien" + } + } + ], + "items": { + "type": "object" + } + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "documentsDBGet", + "tags": [ + "documentsDB" + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update database", + "operationId": "documentsDBUpdate", + "tags": [ + "documentsDB" + ], + "description": "Update a database by its unique ID.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "" + }, + "enabled": { + "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Resizing between dedicated specifications changes cpu, memory, storage and the connection ceiling via a rolling cutover with zero downtime. Moving a `serverless` database onto a dedicated specification is a data migration, not a resize.", + "type": "string", + "example": "serverless", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification. High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "documentsDBDelete", + "tags": [ + "documentsDB" + ], + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "documentsDBListCollections", + "tags": [ + "documentsDB" + ], + "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Collections List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collectionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/list-collections.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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: name, enabled, documentSecurity", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create collection", + "operationId": "documentsDBCreateCollection", + "tags": [ + "documentsDB" + ], + "description": "Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/create-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "collectionId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "" + }, + "permissions": { + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "attributes": { + "description": "Array of attribute definitions to create. Each attribute should contain: key (string), type (string: string, varchar, text, mediumtext, longtext, integer, bigint, double, boolean, datetime, point, linestring, polygon, email, url, ip, enum), size (integer, required for string and varchar types), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", + "type": "array", + "default": [], + "items": { + "type": "object" + } + }, + "indexes": { + "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of attribute keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", + "type": "array", + "default": [], + "items": { + "type": "object" + } + } + }, + "required": [ + "collectionId", + "name" + ] + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}": { + "get": { + "summary": "Get collection", + "operationId": "documentsDBGetCollection", + "tags": [ + "documentsDB" + ], + "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", + "responses": { + "200": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/get-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update collection", + "operationId": "documentsDBUpdateCollection", + "tags": [ + "documentsDB" + ], + "description": "Update a collection by its unique ID.", + "responses": { + "200": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/update-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "purge": { + "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete collection", + "operationId": "documentsDBDeleteCollection", + "tags": [ + "documentsDB" + ], + "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/delete-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents": { + "get": { + "summary": "List documents", + "operationId": "documentsDBListDocuments", + "tags": [ + "documentsDB" + ], + "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/list-documents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create document", + "operationId": "documentsDBCreateDocument", + "tags": [ + "documentsDB" + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createDocument", + "namespace": "documentsDB", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "Create document", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "documentsDB", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "Create documents", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-documents.md", + "public": true + } + ], + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection). Make sure to define attributes before creating documents.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documentId": { + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "data": { + "description": "Document data as JSON object.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documents": { + "description": "Array of documents data as JSON objects.", + "type": "array", + "default": [], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "" + } + }, + "required": [ + "documentId", + "data" + ] + } + } + } + } + }, + "put": { + "summary": "Upsert documents", + "operationId": "documentsDBUpsertDocuments", + "tags": [ + "documentsDB" + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.\n", + "responses": { + "201": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertDocuments", + "namespace": "documentsDB", + "platforms": [ + "console", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.\n", + "demo": "documentsdb\/upsert-documents.md", + "public": true + } + ], + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documents": { + "description": "Array of document data as JSON objects. May contain partial documents.", + "type": "array", + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "" + } + }, + "required": [ + "documents" + ] + } + } + } + } + }, + "patch": { + "summary": "Update documents", + "operationId": "documentsDBUpdateDocuments", + "tags": [ + "documentsDB" + ], + "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/update-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "type": "object", + "default": [], + "example": {} + }, + "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.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "" + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete documents", + "operationId": "documentsDBDeleteDocuments", + "tags": [ + "documentsDB" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "" + }, + "in": "query" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "documentsDBGetDocument", + "tags": [ + "documentsDB" + ], + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/get-document.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "documentsDBUpsertDocument", + "tags": [ + "documentsDB" + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertDocument", + "namespace": "documentsDB", + "platforms": [ + "console", + "client", + "server" + ], + "desc": "", + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/upsert-document.md", + "public": true + } + ], + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "type": "object", + "default": [], + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "" + } + } + } + } + } + } + }, + "patch": { + "summary": "Update document", + "operationId": "documentsDBUpdateDocument", + "tags": [ + "documentsDB" + ], + "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "type": "object", + "default": [], + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "" + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete document", + "operationId": "documentsDBDeleteDocument", + "tags": [ + "documentsDB" + ], + "description": "Delete a document by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "" + }, + "in": "query" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "patch": { + "summary": "Decrement document attribute", + "operationId": "documentsDBDecrementDocumentAttribute", + "tags": [ + "documentsDB" + ], + "description": "Decrement a specific column of a row by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/decrement-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + }, + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to decrement the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "min": { + "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", + "type": "number", + "example": 0, + "format": "float" + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "" + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "patch": { + "summary": "Increment document attribute", + "operationId": "documentsDBIncrementDocumentAttribute", + "tags": [ + "documentsDB" + ], + "description": "Increment a specific column of a row by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/increment-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + }, + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "max": { + "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", + "type": "number", + "example": 100, + "format": "float" + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "" + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "documentsDBListIndexes", + "tags": [ + "documentsDB" + ], + "description": "List indexes in the collection.", + "responses": { + "200": { + "description": "Indexes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/indexList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "documentsdb\/list-indexes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.indexes.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "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: key, type, status, attributes, error", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create index", + "operationId": "documentsDBCreateIndex", + "tags": [ + "documentsDB" + ], + "description": "Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes can be `key`, `fulltext`, and `unique`.", + "responses": { + "202": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "documentsdb\/create-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.indexes.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Index Key.", + "type": "string", + "example": "" + }, + "type": { + "description": "Index type.", + "type": "string", + "example": "key", + "title": "DocumentsDBIndexType", + "oneOf": [ + { + "type": "string", + "enum": [ + "key" + ], + "title": "key" + }, + { + "type": "string", + "enum": [ + "fulltext" + ], + "title": "fulltext" + }, + { + "type": "string", + "enum": [ + "unique" + ], + "title": "unique" + } + ] + }, + "attributes": { + "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", + "type": "array", + "items": { + "type": "string" + } + }, + "orders": { + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "type": "array", + "default": [], + "items": { + "title": "OrderBy", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "asc" + ], + "title": "asc" + }, + { + "type": "string", + "enum": [ + "desc" + ], + "title": "desc" + } + ] + } + }, + "lengths": { + "description": "Length of index. Maximum of 100", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "attributes" + ] + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "documentsDBGetIndex", + "tags": [ + "documentsDB" + ], + "description": "Get index by ID.", + "responses": { + "200": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "documentsdb\/get-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.indexes.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "documentsDBDeleteIndex", + "tags": [ + "documentsDB" + ], + "description": "Delete an index.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "documentsdb\/delete-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.indexes.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "documentsDBCreateFailover", + "tags": [ + "documentsDB" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "documentsdb\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "", + "nullable": true + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "documentsDBListOperations", + "tags": [ + "documentsDB" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "documentsdb\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "documentsDBGetReplicas", + "tags": [ + "documentsDB" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "documentsdb\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "documentsDBGetStatus", + "tags": [ + "documentsDB" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/domains": { + "get": { + "summary": "List domains", + "operationId": "domainsList", + "tags": [ + "domains" + ], + "description": "List all domains registered for this project. This endpoint supports pagination.", + "responses": { + "200": { + "description": "Domains list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on attributes such as domain name, teamInternalId, expiration, etc.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "", + "default": "" + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create a new domain.", + "operationId": "domainsCreate", + "tags": [ + "domains" + ], + "description": "Create a new domain. Before creating a domain, you need to ensure that your DNS provider is properly configured. After creating the domain, you can use the verification endpoint to check if the domain is ready to be used.", + "responses": { + "201": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "Team unique ID.", + "type": "string", + "example": "" + }, + "domain": { + "description": "Domain name (e.g. \"example.com\").", + "type": "string", + "example": "example.com" + } + }, + "required": [ + "teamId", + "domain" + ] + } + } + } + } + } + }, + "\/domains\/price": { + "get": { + "summary": "Get domain price", + "operationId": "domainsGetPrice", + "tags": [ + "domains" + ], + "description": "Get the registration price for a domain name.", + "responses": { + "200": { + "description": "DomainPrice", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPrice" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": null, + "demo": "domains\/get-price.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "2.0.0", + "replaceWith": "domains.listPrices" + }, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domain", + "description": "Domain name to get price for.", + "required": true, + "schema": { + "type": "string", + "example": "example.com" + }, + "in": "query" + }, + { + "name": "periodYears", + "description": "Number of years to calculate the domain price for. Must be at least 1.", + "required": false, + "schema": { + "type": "integer", + "format": "uint32", + "default": 1 + }, + "in": "query" + }, + { + "name": "registrationType", + "description": "Type of registration pricing to fetch. Allowed values: new, transfer, renewal, trade.", + "required": false, + "schema": { + "type": "string", + "example": "new", + "title": "DomainRegistrationType", + "oneOf": [ + { + "type": "string", + "enum": [ + "new" + ], + "title": "new" + }, + { + "type": "string", + "enum": [ + "transfer" + ], + "title": "transfer" + }, + { + "type": "string", + "enum": [ + "renewal" + ], + "title": "renewal" + }, + { + "type": "string", + "enum": [ + "trade" + ], + "title": "trade" + } + ], + "default": "new" + }, + "in": "query" + } + ] + } + }, + "\/domains\/prices": { + "get": { + "summary": "List domain prices", + "operationId": "domainsListPrices", + "tags": [ + "domains" + ], + "description": "Check availability and get the registration price for one or more domain names. Availability is resolved for all domains in a single registrar lookup. A domain whose price could not be resolved, for example because its TLD is not supported, is returned with a null price.", + "responses": { + "200": { + "description": "Domain prices list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPricesList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/list-prices.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domains", + "description": "Domain names to check availability and price for. Maximum of 50 domains per request.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "in": "query" + }, + { + "name": "periodYears", + "description": "Number of years to calculate the domain price for. Must be at least 1.", + "required": false, + "schema": { + "type": "integer", + "format": "uint32", + "default": 1 + }, + "in": "query" + }, + { + "name": "registrationType", + "description": "Type of registration pricing to fetch. Allowed values: new, transfer, renewal, trade.", + "required": false, + "schema": { + "type": "string", + "example": "new", + "title": "DomainRegistrationType", + "oneOf": [ + { + "type": "string", + "enum": [ + "new" + ], + "title": "new" + }, + { + "type": "string", + "enum": [ + "transfer" + ], + "title": "transfer" + }, + { + "type": "string", + "enum": [ + "renewal" + ], + "title": "renewal" + }, + { + "type": "string", + "enum": [ + "trade" + ], + "title": "trade" + } + ], + "default": "new" + }, + "in": "query" + } + ] + } + }, + "\/domains\/purchases": { + "post": { + "summary": "Create a domain purchase", + "operationId": "domainsCreatePurchase", + "tags": [ + "domains" + ], + "description": "Initiate a domain purchase by providing registrant details and a payment method. Authorizes the payment and returns a `clientSecret`. If 3D Secure is required, use the `clientSecret` on the client to complete the authentication challenge. Once authentication is complete (or if none is needed), call the Update Purchase endpoint to capture the payment and finalize the purchase.", + "responses": { + "201": { + "description": "DomainPurchase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPurchase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-purchase.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Fully qualified domain name to purchase (for example, example.com).", + "type": "string", + "example": "example.com" + }, + "organizationId": { + "description": "Team ID that will own the domain.", + "type": "string", + "example": "" + }, + "firstName": { + "description": "Registrant first name used for domain registration.", + "type": "string", + "example": "" + }, + "lastName": { + "description": "Registrant last name used for domain registration.", + "type": "string", + "example": "" + }, + "email": { + "description": "Registrant email address for registration and notices.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "phone": { + "description": "Registrant phone number in E.164 format (for example, +15555551234).", + "type": "string", + "example": "+12065550100", + "format": "phone" + }, + "billingAddressId": { + "description": "Billing address ID used for registration contact details.", + "type": "string", + "example": "" + }, + "addressLine3": { + "description": "Additional address line for the registrant (line 3).", + "type": "string", + "default": "", + "example": "" + }, + "companyName": { + "description": "Company or organization name for the registrant.", + "type": "string", + "default": "", + "example": "" + }, + "periodYears": { + "description": "Registration term in years (1-10).", + "type": "integer", + "default": 1, + "example": 1, + "format": "int32" + }, + "autoRenewal": { + "description": "Whether the domain should renew automatically after purchase.", + "type": "boolean", + "default": true, + "example": false + }, + "paymentMethodId": { + "description": "Payment method ID to authorize and capture the purchase.", + "type": "string", + "example": "" + } + }, + "required": [ + "domain", + "organizationId", + "firstName", + "lastName", + "email", + "phone", + "billingAddressId", + "paymentMethodId" + ] + } + } + } + } + } + }, + "\/domains\/purchases\/{invoiceId}": { + "patch": { + "summary": "Confirm a domain purchase", + "operationId": "domainsUpdatePurchase", + "tags": [ + "domains" + ], + "description": "Finalize a domain purchase initiated with Create Purchase. Verifies that any required 3D Secure authentication is complete, registers the domain, captures the payment, and provisions default DNS records. Returns a 402 error if authentication is still pending.", + "responses": { + "200": { + "description": "DomainPurchase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPurchase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-purchase.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "invoiceId", + "description": "Invoice ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "organizationId": { + "description": "Team ID that owns the domain.", + "type": "string", + "example": "" + } + }, + "required": [ + "organizationId" + ] + } + } + } + } + } + }, + "\/domains\/suggestions": { + "get": { + "summary": "List domain suggestions", + "operationId": "domainsListSuggestions", + "tags": [ + "domains" + ], + "description": "List domain suggestions.", + "responses": { + "200": { + "description": "Domain suggestions list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainSuggestionsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/list-suggestions.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "query", + "description": "Query to find available domains and suggestions. Max length: 256 chars.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "query" + }, + { + "name": "tlds", + "description": "TLDs to suggest.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of suggestions to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32" + }, + "in": "query" + }, + { + "name": "filterType", + "description": "Filter type: premium, suggestion.", + "required": false, + "schema": { + "type": "string", + "example": "premium", + "title": "DomainSuggestionType", + "oneOf": [ + { + "type": "string", + "enum": [ + "premium" + ], + "title": "premium" + }, + { + "type": "string", + "enum": [ + "suggestion" + ], + "title": "suggestion" + } + ] + }, + "in": "query" + }, + { + "name": "priceMax", + "description": "Filter premium domains by maximum price. Only premium domains at or below this price will be returned. Does not affect regular domain suggestions.", + "required": false, + "schema": { + "type": "integer", + "format": "int32" + }, + "in": "query" + }, + { + "name": "priceMin", + "description": "Filter premium domains by minimum price. Only premium domains at or above this price will be returned. Does not affect regular domain suggestions.", + "required": false, + "schema": { + "type": "integer", + "format": "int32" + }, + "in": "query" + } + ] + } + }, + "\/domains\/transfers\/in": { + "post": { + "summary": "Create a domain transfer in.", + "operationId": "domainsCreateTransferIn", + "tags": [ + "domains" + ], + "description": "Initiate a domain transfer-in by providing an authorization code, registrant details, and a payment method. Authorizes the payment and returns a `clientSecret`. If 3D Secure is required, use the `clientSecret` on the client to complete the authentication challenge. Once authentication is complete (or if none is needed), call the Update Transfer In endpoint to capture the payment and submit the transfer.", + "responses": { + "201": { + "description": "DomainPurchase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPurchase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-transfer-in.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name to transfer in.", + "type": "string", + "example": "example.com" + }, + "organizationId": { + "description": "Organization ID that this domain will belong to.", + "type": "string", + "example": "" + }, + "authCode": { + "description": "Authorization code for the domain transfer.", + "type": "string", + "example": "" + }, + "autoRenewal": { + "description": "Whether the domain should renew automatically after transfer.", + "type": "boolean", + "default": true, + "example": false + }, + "paymentMethodId": { + "description": "Payment method ID to authorize and capture the transfer.", + "type": "string", + "example": "" + } + }, + "required": [ + "domain", + "organizationId", + "authCode", + "paymentMethodId" + ] + } + } + } + } + } + }, + "\/domains\/transfers\/in\/{invoiceId}": { + "patch": { + "summary": "Confirm a domain transfer in", + "operationId": "domainsUpdateTransferIn", + "tags": [ + "domains" + ], + "description": "Finalize a domain transfer-in initiated with Create Transfer In. Verifies that any required 3D Secure authentication is complete, submits the transfer with the authorization code, captures the payment, and sends a confirmation email. Returns a 402 error if authentication is still pending.", + "responses": { + "200": { + "description": "DomainPurchase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPurchase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-transfer-in.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "invoiceId", + "description": "Invoice ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "organizationId": { + "description": "Team ID that owns the domain.", + "type": "string", + "example": "" + } + }, + "required": [ + "organizationId" + ] + } + } + } + } + } + }, + "\/domains\/transfers\/out": { + "post": { + "summary": "Create a domain transfer out.", + "operationId": "domainsCreateTransferOut", + "tags": [ + "domains" + ], + "description": "Initiate a domain transfer-out by generating an authorization code for the specified domain. The returned `authCode` should be provided to the gaining provider to complete the transfer. If the domain has auto-renewal enabled, it will be automatically disabled as part of this operation.", + "responses": { + "202": { + "description": "domainTransferOut", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainTransferOut" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-transfer-out.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domainId": { + "description": "Domain unique ID.", + "type": "string", + "example": "" + }, + "organizationId": { + "description": "Organization ID that this domain belongs to.", + "type": "string", + "example": "" + } + }, + "required": [ + "domainId", + "organizationId" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}": { + "get": { + "summary": "Get a single domain by its unique ID.", + "operationId": "domainsGet", + "tags": [ + "domains" + ], + "description": "Get a domain by its unique ID.", + "responses": { + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete a domain by its unique ID.", + "operationId": "domainsDelete", + "tags": [ + "domains" + ], + "description": "Delete a domain by its unique ID. This endpoint can be used to delete a domain from your project.\nOnce deleted, the domain will no longer be available for use and all associated resources will be removed.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/auto-renewal": { + "patch": { + "summary": "Update domain auto-renewal setting.", + "operationId": "domainsUpdateAutoRenewal", + "tags": [ + "domains" + ], + "description": "Enable or disable auto-renewal for a domain.", + "responses": { + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-auto-renewal.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "autoRenewal": { + "description": "Whether the domain should renew automatically.", + "type": "boolean", + "example": false + } + }, + "required": [ + "autoRenewal" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/nameservers": { + "patch": { + "summary": "Update the registrar nameservers for the given domain.", + "operationId": "domainsUpdateNameservers", + "tags": [ + "domains" + ], + "description": "Update the registrar nameservers for the given domain. When nameservers are not provided,\nthe domain will be updated to use Appwrite nameservers.", + "responses": { + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-nameservers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "nameservers": { + "description": "Nameservers to set for the domain. Defaults to Appwrite nameservers when omitted.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "\/domains\/{domainId}\/nameservers\/verification": { + "patch": { + "summary": "Verify which NS records are used and update the domain accordingly.", + "operationId": "domainsVerifyNameservers", + "tags": [ + "domains" + ], + "description": "Verify which NS records are used and update the domain accordingly. This will check the domain's\nnameservers and update the domain's status based on whether the nameservers match the expected\nAppwrite nameservers.", + "responses": { + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/verify-nameservers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/google-workspace": { + "get": { + "summary": "Get Google Workspace preset (Records)", + "operationId": "domainsGetPresetGoogleWorkspace", + "tags": [ + "domains" + ], + "description": "List Google Workspace DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-google-workspace.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create Google Workspace preset (Records)", + "operationId": "domainsCreatePresetGoogleWorkspace", + "tags": [ + "domains" + ], + "description": "Add Google Workspace DNS records to the domain. This will create the required MX records \nfor Google Workspace email hosting.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-google-workspace.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/icloud": { + "get": { + "summary": "Get iCloud preset (Records)", + "operationId": "domainsGetPresetICloud", + "tags": [ + "domains" + ], + "description": "List iCloud DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-i-cloud.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create iCloud preset (Records)", + "operationId": "domainsCreatePresetICloud", + "tags": [ + "domains" + ], + "description": "Add iCloud DNS records to the domain. This will create the required MX and SPF records\nfor using iCloud email services with your domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-i-cloud.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/mailgun": { + "get": { + "summary": "Get Mailgun preset (Records)", + "operationId": "domainsGetPresetMailgun", + "tags": [ + "domains" + ], + "description": "List Mailgun DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-mailgun.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create Mailgun preset (Records)", + "operationId": "domainsCreatePresetMailgun", + "tags": [ + "domains" + ], + "description": "Add Mailgun DNS records to the domain. This endpoint will create the required DNS records \nfor Mailgun in the specified domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-mailgun.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/outlook": { + "get": { + "summary": "Get Outlook preset (Records)", + "operationId": "domainsGetPresetOutlook", + "tags": [ + "domains" + ], + "description": "List Outlook DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-outlook.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create Outlook preset (Records)", + "operationId": "domainsCreatePresetOutlook", + "tags": [ + "domains" + ], + "description": "Add Outlook DNS records to the domain. This will create the required MX records\nfor setting up Outlook email hosting for your domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-outlook.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/proton-mail": { + "get": { + "summary": "Get ProtonMail preset (Records)", + "operationId": "domainsGetPresetProtonMail", + "tags": [ + "domains" + ], + "description": "List ProtonMail DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-proton-mail.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create ProtonMail preset (Records)", + "operationId": "domainsCreatePresetProtonMail", + "tags": [ + "domains" + ], + "description": "Add ProtonMail DNS records to the domain. This will create the required MX records\nfor using ProtonMail with your custom domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-proton-mail.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/zoho": { + "get": { + "summary": "Get Zoho preset (Records)", + "operationId": "domainsGetPresetZoho", + "tags": [ + "domains" + ], + "description": "List Zoho DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-zoho.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create Zoho Mail preset (Records)", + "operationId": "domainsCreatePresetZoho", + "tags": [ + "domains" + ], + "description": "Add Zoho Mail DNS records to the domain. This will create the required MX records\nfor setting up Zoho Mail on your domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-zoho.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/records": { + "get": { + "summary": "List DNS records for a given domain.", + "operationId": "domainsListRecords", + "tags": [ + "domains" + ], + "description": "List DNS records for a given domain. You can use this endpoint to list all the DNS records\nassociated with your domain.", + "responses": { + "200": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/list-records.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. You may filter on attributes such as type, name, value, etc. Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/records\/a": { + "post": { + "summary": "Create a new A record for the given domain.", + "operationId": "domainsCreateRecordA", + "tags": [ + "domains" + ], + "description": "Create a new A record for the given domain. A records are used to point a domain name \nto an IPv4 address. The record value should be a valid IPv4 address.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-a.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "IPv4 address for this A record.", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be greater than 0.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment explaining what this record is for.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/a\/{recordId}": { + "put": { + "summary": "Update an existing A record for the given domain.", + "operationId": "domainsUpdateRecordA", + "tags": [ + "domains" + ], + "description": "Update an existing A record for the given domain. This endpoint allows you to modify \nthe properties of an A record including its name (subdomain), IPv4 address, TTL, \nand optional comment.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-a.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "IPv4 address for this A record.", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be greater than 0.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment explaining what this record is for.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/aaaa": { + "post": { + "summary": "Create a new AAAA record for the given domain.", + "operationId": "domainsCreateRecordAAAA", + "tags": [ + "domains" + ], + "description": "Create a new AAAA record for the given domain. This endpoint allows you to add a new IPv6 DNS record \nto your domain. The record will be used to point a hostname to an IPv6 address.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-aaaa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "IPv6 address for this AAAA record.", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be greater than 0.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment explaining what this record is for.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/aaaa\/{recordId}": { + "put": { + "summary": "Update an existing AAAA record for the given domain.", + "operationId": "domainsUpdateRecordAAAA", + "tags": [ + "domains" + ], + "description": "Update an existing AAAA record for the given domain. This endpoint allows you to modify\nthe properties of an existing AAAA record, including its name (subdomain), IPv6 address,\nTTL, and optional comment.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-aaaa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "IPv6 address for this AAAA record.", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be greater than 0.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/alias": { + "post": { + "summary": "Create a new ALIAS record for the given domain.", + "operationId": "domainsCreateRecordAlias", + "tags": [ + "domains" + ], + "description": "Create a new ALIAS record for the given domain. This record type can be used to point your domain \nto another domain name that will serve as an alias. This is particularly useful when you want to \nmap your domain to a target domain that may change its IP address.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-alias.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name.", + "type": "string" + }, + "value": { + "description": "Target domain for this ALIAS record.", + "type": "string", + "example": "" + }, + "ttl": { + "description": "Time to live, in seconds. Must be greater than 0.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/alias\/{recordId}": { + "put": { + "summary": "Update an existing ALIAS record for the given domain.", + "operationId": "domainsUpdateRecordAlias", + "tags": [ + "domains" + ], + "description": "Update an existing ALIAS record for the specified domain. This endpoint allows you to modify\nthe properties of an existing ALIAS record including its name, target domain, TTL, and comment.\n \nThe ALIAS record type is similar to a CNAME record but can be used at the zone apex (root domain).\nIt provides a way to map one domain name to another.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-alias.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name.", + "type": "string" + }, + "value": { + "description": "Target domain for this ALIAS record.", + "type": "string", + "example": "" + }, + "ttl": { + "description": "Time to live, in seconds. Must be greater than 0.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/caa": { + "post": { + "summary": "Create a new CAA record for the given domain.", + "operationId": "domainsCreateRecordCAA", + "tags": [ + "domains" + ], + "description": "Create a new CAA record for the given domain. CAA records are used to specify which \nCertificate Authorities (CAs) are allowed to issue SSL\/TLS certificates for your domain.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-caa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name.", + "type": "string" + }, + "value": { + "description": "CAA value (e.g. issuer domain).", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be greater than 0.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/caa\/{recordId}": { + "put": { + "summary": "Update an existing CAA record for the given domain.", + "operationId": "domainsUpdateRecordCAA", + "tags": [ + "domains" + ], + "description": "Update an existing CAA record for the given domain. A CAA (Certification Authority Authorization) \nrecord is used to specify which certificate authorities (CAs) are authorized to issue certificates \nfor a domain.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-caa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name.", + "type": "string" + }, + "value": { + "description": "CAA value (e.g. issuer domain).", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be greater than 0.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/cname": { + "post": { + "summary": "Create a new CNAME record for the given domain.", + "operationId": "domainsCreateRecordCNAME", + "tags": [ + "domains" + ], + "description": "Create a new CNAME record for the given domain.\n \nA CNAME record maps a subdomain to another domain name, allowing you to create aliases \nfor your domain. For example, you can create a CNAME record to point 'blog.example.com' \nto 'example.wordpress.com'.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-cname.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Canonical target for this CNAME record.", + "type": "string", + "example": "" + }, + "ttl": { + "description": "Time to live, in seconds. Must be greater than 0.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/cname\/{recordId}": { + "put": { + "summary": "Update an existing CNAME record for the given domain.", + "operationId": "domainsUpdateRecordCNAME", + "tags": [ + "domains" + ], + "description": "Update an existing CNAME record for the given domain.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-cname.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Canonical target for this CNAME record.", + "type": "string", + "example": "" + }, + "ttl": { + "description": "Time to live, in seconds. Must be greater than 0.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/https": { + "post": { + "summary": "Create a new HTTPS record for the given domain.", + "operationId": "domainsCreateRecordHTTPS", + "tags": [ + "domains" + ], + "description": "Create a new HTTPS record for the given domain. This record is used to configure HTTPS \nsettings for your domain, enabling secure communication over SSL\/TLS.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-https.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Target for the HTTPS record.", + "type": "string", + "example": "" + }, + "ttl": { + "description": "Time to live, in seconds. Must be greater than 0.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/https\/{recordId}": { + "put": { + "summary": "Update an existing HTTPS record for the given domain.", + "operationId": "domainsUpdateRecordHTTPS", + "tags": [ + "domains" + ], + "description": "Update an existing HTTPS record for the given domain. This endpoint allows you to modify \nthe properties of an HTTPS record associated with your domain, including the name (subdomain), \ntarget value, TTL, and optional comment.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-https.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Target for the HTTPS record.", + "type": "string", + "example": "" + }, + "ttl": { + "description": "Time to live, in seconds. Must be greater than 0.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/mx": { + "post": { + "summary": "Create a new MX record for the given domain.", + "operationId": "domainsCreateRecordMX", + "tags": [ + "domains" + ], + "description": "Create a new MX record for the given domain. MX records are used to define the mail servers responsible \nfor accepting email messages for the domain. Multiple MX records can be created with different priorities.\nThe priority parameter determines the order in which mail servers are used, with lower values indicating \nhigher priority.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-mx.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Mail server domain for this MX record.", + "type": "string", + "example": "" + }, + "ttl": { + "description": "Time to live, in seconds. Must be greater than 0.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "priority": { + "description": "MX priority.", + "type": "integer", + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/mx\/{recordId}": { + "put": { + "summary": "Update an existing MX record for the given domain.", + "operationId": "domainsUpdateRecordMX", + "tags": [ + "domains" + ], + "description": "Update an existing MX record for the given domain.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-mx.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Mail server domain for this MX record.", + "type": "string", + "example": "" + }, + "ttl": { + "description": "Time to live, in seconds. Must be greater than 0.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "priority": { + "description": "MX priority.", + "type": "integer", + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/ns": { + "post": { + "summary": "Create a new NS record for the given domain.", + "operationId": "domainsCreateRecordNS", + "tags": [ + "domains" + ], + "description": "Create a new NS record for the given domain. NS records specify the nameservers that are used \nto resolve the domain name to IP addresses. Each domain can have multiple NS records.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-ns.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Nameserver target for this NS record.", + "type": "string", + "example": "" + }, + "ttl": { + "description": "Time to live, in seconds. Must be greater than 0.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/ns\/{recordId}": { + "put": { + "summary": "Update an existing NS record for the given domain.", + "operationId": "domainsUpdateRecordNS", + "tags": [ + "domains" + ], + "description": "Update an existing NS record for the given domain. This endpoint allows you to modify \nthe properties of an NS (nameserver) record associated with your domain. You can update \nthe record name (subdomain), target nameserver value, TTL, and add or modify comments \nfor better record management.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-ns.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Nameserver target for this NS record.", + "type": "string", + "example": "" + }, + "ttl": { + "description": "Time to live, in seconds. Must be greater than 0.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/srv": { + "post": { + "summary": "Create a new SRV record for the given domain.", + "operationId": "domainsCreateRecordSRV", + "tags": [ + "domains" + ], + "description": "Create a new SRV record for the given domain. SRV records are used to define the location \nof servers for specific services. For example, they can be used to specify which server \nhandles a specific service like SIP or XMPP for the domain.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-srv.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (service name).", + "type": "string" + }, + "value": { + "description": "Target hostname for this SRV record.", + "type": "string", + "example": "" + }, + "ttl": { + "description": "Time to live, in seconds. Must be greater than 0.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "priority": { + "description": "Record priority.", + "type": "integer", + "format": "int32" + }, + "weight": { + "description": "Record weight.", + "type": "integer", + "format": "int32" + }, + "port": { + "description": "Port number for the service.", + "type": "integer", + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority", + "weight", + "port" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/srv\/{recordId}": { + "put": { + "summary": "Update an existing SRV record for the given domain.", + "operationId": "domainsUpdateRecordSRV", + "tags": [ + "domains" + ], + "description": "Update an existing SRV record for the given domain.\n \nRequired parameters:\n- domainId: Domain unique ID\n- recordId: DNS record unique ID\n- name: Record name (service name)\n- value: Target hostname for this SRV record\n- ttl: Time to live, in seconds\n- priority: Record priority\n- weight: Record weight\n- port: Port number for the service\n \nOptional parameters:\n- comment: A comment for this record", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-srv.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (service name).", + "type": "string" + }, + "value": { + "description": "Target hostname for this SRV record.", + "type": "string", + "example": "" + }, + "ttl": { + "description": "Time to live, in seconds. Must be greater than 0.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "priority": { + "description": "Record priority.", + "type": "integer", + "format": "int32" + }, + "weight": { + "description": "Record weight.", + "type": "integer", + "format": "int32" + }, + "port": { + "description": "Port number for the service.", + "type": "integer", + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority", + "weight", + "port" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/txt": { + "post": { + "summary": "Create a new TXT record for the given domain.", + "operationId": "domainsCreateRecordTXT", + "tags": [ + "domains" + ], + "description": "Create a new TXT record for the given domain. TXT records can be used \nto provide additional information about your domain, such as domain \nverification records, SPF records, or DKIM records.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-txt.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain) for the TXT record.", + "type": "string" + }, + "value": { + "description": "TXT record value.", + "type": "string", + "default": "", + "example": "" + }, + "ttl": { + "description": "Time to live, in seconds. Must be greater than 0.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "name", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/txt\/{recordId}": { + "put": { + "summary": "Update an existing TXT record for the given domain.", + "operationId": "domainsUpdateRecordTXT", + "tags": [ + "domains" + ], + "description": "Update an existing TXT record for the given domain.\n \nUpdate the TXT record details for a specific domain by providing the domain ID,\nrecord ID, and the new record configuration including name, value, TTL, and an optional comment.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-txt.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain) for the TXT record.", + "type": "string" + }, + "value": { + "description": "TXT record value.", + "type": "string", + "example": "" + }, + "ttl": { + "description": "Time to live, in seconds. Must be greater than 0.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/{recordId}": { + "get": { + "summary": "Get a single DNS record for a given domain by record ID.", + "operationId": "domainsGetRecord", + "tags": [ + "domains" + ], + "description": "Get a single DNS record for a given domain by record ID.\n \nThis endpoint allows you to retrieve a specific DNS record associated with a domain\nusing its unique identifier. The record contains information about the DNS configuration\nsuch as type, value, and TTL settings.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-record.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete a DNS record for the given domain.", + "operationId": "domainsDeleteRecord", + "tags": [ + "domains" + ], + "description": "Delete a DNS record for the given domain. This endpoint allows you to delete an existing DNS record \nfrom a specific domain.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/delete-record.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/team": { + "patch": { + "summary": "Update domain team.", + "operationId": "domainsUpdateTeam", + "tags": [ + "domains" + ], + "description": "Update the team ID for a specific domain. The caller must administer the current\nteam and be an owner of the destination team.\n\nUpdating the team ID will transfer ownership and access control of the domain\nand all its DNS records to the new team.", + "responses": { + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-team.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "New team unique ID.", + "type": "string", + "example": "" + } + }, + "required": [ + "teamId" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/transfers\/status": { + "get": { + "summary": "Get domain transfer status.", + "operationId": "domainsGetTransferStatus", + "tags": [ + "domains" + ], + "description": "Retrieve the current transfer status for a domain. Returns the status, an optional reason, and a timestamp of the last status change.", + "responses": { + "200": { + "description": "domainTransferStatus", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainTransferStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-transfer-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/zone": { + "get": { + "summary": "Retrieve the DNS zone file for the given domain.", + "operationId": "domainsGetZone", + "tags": [ + "domains" + ], + "description": "Retrieve the DNS zone file for the given domain. This endpoint will return the DNS\nzone file in a standardized format that can be used to configure DNS servers.", + "responses": { + "200": { + "description": "Text", + "content": { + "text\/plain": { + "schema": { + "type": "string" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-zone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update the DNS zone for the given domain using the provided zone file content. All parsed records are imported and then the main domain document is returned.", + "operationId": "domainsUpdateZone", + "tags": [ + "domains" + ], + "description": "Update the DNS zone for the given domain using the provided zone file content.\nAll parsed records are imported and then the main domain document is returned.", + "responses": { + "201": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-zone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "description": "DNS zone file content as a string.", + "type": "string", + "example": "" + } + }, + "required": [ + "content" + ] + } + } + } + } + } + }, + "\/embeddings\/text": { + "post": { + "summary": "Create text embeddings", + "operationId": "embeddingsCreateTextEmbeddings", + "tags": [ + "embeddings" + ], + "description": "Generate vector embeddings for an array of text using the selected embedding model. Use the returned vectors to power semantic search and similarity queries against your vector collections.\n", + "responses": { + "200": { + "description": "Embedding list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/embeddingList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "embeddings", + "demo": "embeddings\/create-text-embeddings.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "embeddings.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createTextEmbeddings", + "namespace": "embeddings", + "platforms": [ + "console", + "server" + ], + "desc": "Create Text Embedding", + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + }, + "parameters": [ + "texts", + "model" + ], + "required": [ + "texts" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/embeddingList" + } + ], + "description": "Generate vector embeddings for an array of text using the selected embedding model. Use the returned vectors to power semantic search and similarity queries against your vector collections.\n", + "demo": "embeddings\/create-text-embeddings.md", + "public": true + } + ], + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "texts": { + "description": "Array of text to generate embeddings.", + "type": "array", + "items": { + "type": "string" + } + }, + "model": { + "description": "The embedding model to use for generating vector embeddings.", + "type": "string", + "default": "nomic-embed-text", + "example": "nomic-embed-text", + "title": "EmbeddingModel", + "oneOf": [ + { + "type": "string", + "enum": [ + "nomic-embed-text" + ], + "title": "nomic-embed-text" + }, + { + "type": "string", + "enum": [ + "all-minilm" + ], + "title": "all-minilm" + } + ] + } + }, + "required": [ + "texts" + ] + } + } + } + } + } + }, + "\/functions": { + "get": { + "summary": "List functions", + "operationId": "functionsList", + "tags": [ + "functions" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/functionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "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: name, enabled, runtime, deploymentId, schedule, scheduleNext, schedulePrevious, timeout, entrypoint, commands, installationId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create function", + "operationId": "functionsCreate", + "tags": [ + "functions" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/function" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "functionId": { + "description": "Function ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "description": "Function name. Max length: 128 chars.", + "type": "string", + "example": "" + }, + "runtime": { + "description": "Execution runtime.", + "type": "string", + "example": "node-14.5", + "title": "Runtime", + "oneOf": [ + { + "type": "string", + "enum": [ + "node-14.5" + ], + "title": "node-14.5" + }, + { + "type": "string", + "enum": [ + "node-16.0" + ], + "title": "node-16.0" + }, + { + "type": "string", + "enum": [ + "node-18.0" + ], + "title": "node-18.0" + }, + { + "type": "string", + "enum": [ + "node-19.0" + ], + "title": "node-19.0" + }, + { + "type": "string", + "enum": [ + "node-20.0" + ], + "title": "node-20.0" + }, + { + "type": "string", + "enum": [ + "node-21.0" + ], + "title": "node-21.0" + }, + { + "type": "string", + "enum": [ + "node-22" + ], + "title": "node-22" + }, + { + "type": "string", + "enum": [ + "node-23" + ], + "title": "node-23" + }, + { + "type": "string", + "enum": [ + "node-24" + ], + "title": "node-24" + }, + { + "type": "string", + "enum": [ + "node-25" + ], + "title": "node-25" + }, + { + "type": "string", + "enum": [ + "node-26" + ], + "title": "node-26" + }, + { + "type": "string", + "enum": [ + "php-8.0" + ], + "title": "php-8.0" + }, + { + "type": "string", + "enum": [ + "php-8.1" + ], + "title": "php-8.1" + }, + { + "type": "string", + "enum": [ + "php-8.2" + ], + "title": "php-8.2" + }, + { + "type": "string", + "enum": [ + "php-8.3" + ], + "title": "php-8.3" + }, + { + "type": "string", + "enum": [ + "php-8.4" + ], + "title": "php-8.4" + }, + { + "type": "string", + "enum": [ + "ruby-3.0" + ], + "title": "ruby-3.0" + }, + { + "type": "string", + "enum": [ + "ruby-3.1" + ], + "title": "ruby-3.1" + }, + { + "type": "string", + "enum": [ + "ruby-3.2" + ], + "title": "ruby-3.2" + }, + { + "type": "string", + "enum": [ + "ruby-3.3" + ], + "title": "ruby-3.3" + }, + { + "type": "string", + "enum": [ + "ruby-3.4" + ], + "title": "ruby-3.4" + }, + { + "type": "string", + "enum": [ + "ruby-4.0" + ], + "title": "ruby-4.0" + }, + { + "type": "string", + "enum": [ + "python-3.8" + ], + "title": "python-3.8" + }, + { + "type": "string", + "enum": [ + "python-3.9" + ], + "title": "python-3.9" + }, + { + "type": "string", + "enum": [ + "python-3.10" + ], + "title": "python-3.10" + }, + { + "type": "string", + "enum": [ + "python-3.11" + ], + "title": "python-3.11" + }, + { + "type": "string", + "enum": [ + "python-3.12" + ], + "title": "python-3.12" + }, + { + "type": "string", + "enum": [ + "python-3.13" + ], + "title": "python-3.13" + }, + { + "type": "string", + "enum": [ + "python-3.14" + ], + "title": "python-3.14" + }, + { + "type": "string", + "enum": [ + "python-ml-3.11" + ], + "title": "python-ml-3.11" + }, + { + "type": "string", + "enum": [ + "python-ml-3.12" + ], + "title": "python-ml-3.12" + }, + { + "type": "string", + "enum": [ + "python-ml-3.13" + ], + "title": "python-ml-3.13" + }, + { + "type": "string", + "enum": [ + "deno-1.21" + ], + "title": "deno-1.21" + }, + { + "type": "string", + "enum": [ + "deno-1.24" + ], + "title": "deno-1.24" + }, + { + "type": "string", + "enum": [ + "deno-1.35" + ], + "title": "deno-1.35" + }, + { + "type": "string", + "enum": [ + "deno-1.40" + ], + "title": "deno-1.40" + }, + { + "type": "string", + "enum": [ + "deno-1.46" + ], + "title": "deno-1.46" + }, + { + "type": "string", + "enum": [ + "deno-2.0" + ], + "title": "deno-2.0" + }, + { + "type": "string", + "enum": [ + "deno-2.5" + ], + "title": "deno-2.5" + }, + { + "type": "string", + "enum": [ + "deno-2.6" + ], + "title": "deno-2.6" + }, + { + "type": "string", + "enum": [ + "dart-2.15" + ], + "title": "dart-2.15" + }, + { + "type": "string", + "enum": [ + "dart-2.16" + ], + "title": "dart-2.16" + }, + { + "type": "string", + "enum": [ + "dart-2.17" + ], + "title": "dart-2.17" + }, + { + "type": "string", + "enum": [ + "dart-2.18" + ], + "title": "dart-2.18" + }, + { + "type": "string", + "enum": [ + "dart-2.19" + ], + "title": "dart-2.19" + }, + { + "type": "string", + "enum": [ + "dart-3.0" + ], + "title": "dart-3.0" + }, + { + "type": "string", + "enum": [ + "dart-3.1" + ], + "title": "dart-3.1" + }, + { + "type": "string", + "enum": [ + "dart-3.3" + ], + "title": "dart-3.3" + }, + { + "type": "string", + "enum": [ + "dart-3.5" + ], + "title": "dart-3.5" + }, + { + "type": "string", + "enum": [ + "dart-3.8" + ], + "title": "dart-3.8" + }, + { + "type": "string", + "enum": [ + "dart-3.9" + ], + "title": "dart-3.9" + }, + { + "type": "string", + "enum": [ + "dart-3.10" + ], + "title": "dart-3.10" + }, + { + "type": "string", + "enum": [ + "dart-3.11" + ], + "title": "dart-3.11" + }, + { + "type": "string", + "enum": [ + "dart-3.12" + ], + "title": "dart-3.12" + }, + { + "type": "string", + "enum": [ + "dotnet-6.0" + ], + "title": "dotnet-6.0" + }, + { + "type": "string", + "enum": [ + "dotnet-7.0" + ], + "title": "dotnet-7.0" + }, + { + "type": "string", + "enum": [ + "dotnet-8.0" + ], + "title": "dotnet-8.0" + }, + { + "type": "string", + "enum": [ + "dotnet-10" + ], + "title": "dotnet-10" + }, + { + "type": "string", + "enum": [ + "java-8.0" + ], + "title": "java-8.0" + }, + { + "type": "string", + "enum": [ + "java-11.0" + ], + "title": "java-11.0" + }, + { + "type": "string", + "enum": [ + "java-17.0" + ], + "title": "java-17.0" + }, + { + "type": "string", + "enum": [ + "java-18.0" + ], + "title": "java-18.0" + }, + { + "type": "string", + "enum": [ + "java-21.0" + ], + "title": "java-21.0" + }, + { + "type": "string", + "enum": [ + "java-22" + ], + "title": "java-22" + }, + { + "type": "string", + "enum": [ + "java-25" + ], + "title": "java-25" + }, + { + "type": "string", + "enum": [ + "swift-5.5" + ], + "title": "swift-5.5" + }, + { + "type": "string", + "enum": [ + "swift-5.8" + ], + "title": "swift-5.8" + }, + { + "type": "string", + "enum": [ + "swift-5.9" + ], + "title": "swift-5.9" + }, + { + "type": "string", + "enum": [ + "swift-5.10" + ], + "title": "swift-5.10" + }, + { + "type": "string", + "enum": [ + "swift-6.2" + ], + "title": "swift-6.2" + }, + { + "type": "string", + "enum": [ + "kotlin-1.6" + ], + "title": "kotlin-1.6" + }, + { + "type": "string", + "enum": [ + "kotlin-1.8" + ], + "title": "kotlin-1.8" + }, + { + "type": "string", + "enum": [ + "kotlin-1.9" + ], + "title": "kotlin-1.9" + }, + { + "type": "string", + "enum": [ + "kotlin-2.0" + ], + "title": "kotlin-2.0" + }, + { + "type": "string", + "enum": [ + "kotlin-2.3" + ], + "title": "kotlin-2.3" + }, + { + "type": "string", + "enum": [ + "cpp-17" + ], + "title": "cpp-17" + }, + { + "type": "string", + "enum": [ + "cpp-20" + ], + "title": "cpp-20" + }, + { + "type": "string", + "enum": [ + "bun-1.0" + ], + "title": "bun-1.0" + }, + { + "type": "string", + "enum": [ + "bun-1.1" + ], + "title": "bun-1.1" + }, + { + "type": "string", + "enum": [ + "bun-1.2" + ], + "title": "bun-1.2" + }, + { + "type": "string", + "enum": [ + "bun-1.3" + ], + "title": "bun-1.3" + }, + { + "type": "string", + "enum": [ + "bun-1.4" + ], + "title": "bun-1.4" + }, + { + "type": "string", + "enum": [ + "go-1.23" + ], + "title": "go-1.23" + }, + { + "type": "string", + "enum": [ + "go-1.24" + ], + "title": "go-1.24" + }, + { + "type": "string", + "enum": [ + "go-1.25" + ], + "title": "go-1.25" + }, + { + "type": "string", + "enum": [ + "go-1.26" + ], + "title": "go-1.26" + }, + { + "type": "string", + "enum": [ + "rust-1.83" + ], + "title": "rust-1.83" + }, + { + "type": "string", + "enum": [ + "static-1" + ], + "title": "static-1" + }, + { + "type": "string", + "enum": [ + "flutter-3.24" + ], + "title": "flutter-3.24" + }, + { + "type": "string", + "enum": [ + "flutter-3.27" + ], + "title": "flutter-3.27" + }, + { + "type": "string", + "enum": [ + "flutter-3.29" + ], + "title": "flutter-3.29" + }, + { + "type": "string", + "enum": [ + "flutter-3.32" + ], + "title": "flutter-3.32" + }, + { + "type": "string", + "enum": [ + "flutter-3.35" + ], + "title": "flutter-3.35" + }, + { + "type": "string", + "enum": [ + "flutter-3.38" + ], + "title": "flutter-3.38" + }, + { + "type": "string", + "enum": [ + "flutter-3.41" + ], + "title": "flutter-3.41" + }, + { + "type": "string", + "enum": [ + "flutter-3.44" + ], + "title": "flutter-3.44" + } + ] + }, + "execute": { + "description": "An array of role strings with execution permissions. By default no user is granted with any execute permissions. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "type": "array", + "default": [], + "example": [ + "any" + ], + "items": { + "type": "string" + } + }, + "events": { + "description": "Events list. Maximum of 100 events are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string", + "default": "", + "example": "0 0 * * *" + }, + "timeout": { + "description": "Function maximum execution time in seconds.", + "type": "integer", + "default": 15, + "example": 1, + "format": "int32" + }, + "enabled": { + "description": "Is function enabled? When set to 'disabled', users cannot access the function but Server SDKs with and API key can still access the function. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "logging": { + "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "type": "boolean", + "default": true, + "example": false + }, + "entrypoint": { + "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", + "type": "string", + "default": "", + "example": "" + }, + "commands": { + "description": "Build Commands.", + "type": "string", + "default": "", + "example": "" + }, + "scopes": { + "description": "List of scopes allowed for API key auto-generated for every execution. Maximum of 200 scopes are allowed.", + "type": "array", + "default": [], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + } + ] + } + }, + "installationId": { + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "type": "string", + "default": "", + "example": "" + }, + "providerRepositoryId": { + "description": "Repository ID of the repo linked to the function.", + "type": "string", + "default": "", + "example": "" + }, + "providerBranch": { + "description": "Production branch for the repo linked to the function.", + "type": "string", + "default": "", + "example": "" + }, + "providerSilentMode": { + "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests.", + "type": "boolean", + "default": false, + "example": false + }, + "providerRootDirectory": { + "description": "Path to function code in the linked repo.", + "type": "string", + "default": "", + "example": "" + }, + "providerBranches": { + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "providerPaths": { + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "buildSpecification": { + "description": "Build specification for the function deployments.", + "type": "string", + "default": {}, + "example": "s-1vcpu-512mb" + }, + "runtimeSpecification": { + "description": "Runtime specification for the function executions.", + "type": "string", + "default": {}, + "example": "s-1vcpu-512mb" + }, + "deploymentRetention": { + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + } + }, + "required": [ + "functionId", + "name", + "runtime" + ] + } + } + } + } + } + }, + "\/functions\/runtimes": { + "get": { + "summary": "List runtimes", + "operationId": "functionsListRuntimes", + "tags": [ + "functions" + ], + "description": "Get a list of all runtimes that are currently active on your instance.", + "responses": { + "200": { + "description": "Runtimes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/runtimeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "runtimes", + "demo": "functions\/list-runtimes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/functions\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "functionsListSpecifications", + "tags": [ + "functions" + ], + "description": "List allowed function specifications for this instance.", + "responses": { + "200": { + "description": "Specifications List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/specificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "runtimes", + "demo": "functions\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "server": { + "Project": [], + "Key": [] + }, + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Specification type to list. Can be one of: runtimes, builds. Defaults to runtimes.", + "required": false, + "schema": { + "type": "string", + "example": "runtimes", + "default": "runtimes" + }, + "in": "query" + } + ] + } + }, + "\/functions\/templates": { + "get": { + "summary": "List templates", + "operationId": "functionsListTemplates", + "tags": [ + "functions" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/templateFunctionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "templates", + "demo": "functions\/list-templates.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "runtimes", + "description": "List of runtimes allowed for filtering function templates. Maximum of 100 runtimes are allowed.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "Runtime", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "node-14.5" + ], + "title": "node-14.5" + }, + { + "type": "string", + "enum": [ + "node-16.0" + ], + "title": "node-16.0" + }, + { + "type": "string", + "enum": [ + "node-18.0" + ], + "title": "node-18.0" + }, + { + "type": "string", + "enum": [ + "node-19.0" + ], + "title": "node-19.0" + }, + { + "type": "string", + "enum": [ + "node-20.0" + ], + "title": "node-20.0" + }, + { + "type": "string", + "enum": [ + "node-21.0" + ], + "title": "node-21.0" + }, + { + "type": "string", + "enum": [ + "node-22" + ], + "title": "node-22" + }, + { + "type": "string", + "enum": [ + "node-23" + ], + "title": "node-23" + }, + { + "type": "string", + "enum": [ + "node-24" + ], + "title": "node-24" + }, + { + "type": "string", + "enum": [ + "node-25" + ], + "title": "node-25" + }, + { + "type": "string", + "enum": [ + "node-26" + ], + "title": "node-26" + }, + { + "type": "string", + "enum": [ + "php-8.0" + ], + "title": "php-8.0" + }, + { + "type": "string", + "enum": [ + "php-8.1" + ], + "title": "php-8.1" + }, + { + "type": "string", + "enum": [ + "php-8.2" + ], + "title": "php-8.2" + }, + { + "type": "string", + "enum": [ + "php-8.3" + ], + "title": "php-8.3" + }, + { + "type": "string", + "enum": [ + "php-8.4" + ], + "title": "php-8.4" + }, + { + "type": "string", + "enum": [ + "ruby-3.0" + ], + "title": "ruby-3.0" + }, + { + "type": "string", + "enum": [ + "ruby-3.1" + ], + "title": "ruby-3.1" + }, + { + "type": "string", + "enum": [ + "ruby-3.2" + ], + "title": "ruby-3.2" + }, + { + "type": "string", + "enum": [ + "ruby-3.3" + ], + "title": "ruby-3.3" + }, + { + "type": "string", + "enum": [ + "ruby-3.4" + ], + "title": "ruby-3.4" + }, + { + "type": "string", + "enum": [ + "ruby-4.0" + ], + "title": "ruby-4.0" + }, + { + "type": "string", + "enum": [ + "python-3.8" + ], + "title": "python-3.8" + }, + { + "type": "string", + "enum": [ + "python-3.9" + ], + "title": "python-3.9" + }, + { + "type": "string", + "enum": [ + "python-3.10" + ], + "title": "python-3.10" + }, + { + "type": "string", + "enum": [ + "python-3.11" + ], + "title": "python-3.11" + }, + { + "type": "string", + "enum": [ + "python-3.12" + ], + "title": "python-3.12" + }, + { + "type": "string", + "enum": [ + "python-3.13" + ], + "title": "python-3.13" + }, + { + "type": "string", + "enum": [ + "python-3.14" + ], + "title": "python-3.14" + }, + { + "type": "string", + "enum": [ + "python-ml-3.11" + ], + "title": "python-ml-3.11" + }, + { + "type": "string", + "enum": [ + "python-ml-3.12" + ], + "title": "python-ml-3.12" + }, + { + "type": "string", + "enum": [ + "python-ml-3.13" + ], + "title": "python-ml-3.13" + }, + { + "type": "string", + "enum": [ + "deno-1.21" + ], + "title": "deno-1.21" + }, + { + "type": "string", + "enum": [ + "deno-1.24" + ], + "title": "deno-1.24" + }, + { + "type": "string", + "enum": [ + "deno-1.35" + ], + "title": "deno-1.35" + }, + { + "type": "string", + "enum": [ + "deno-1.40" + ], + "title": "deno-1.40" + }, + { + "type": "string", + "enum": [ + "deno-1.46" + ], + "title": "deno-1.46" + }, + { + "type": "string", + "enum": [ + "deno-2.0" + ], + "title": "deno-2.0" + }, + { + "type": "string", + "enum": [ + "deno-2.5" + ], + "title": "deno-2.5" + }, + { + "type": "string", + "enum": [ + "deno-2.6" + ], + "title": "deno-2.6" + }, + { + "type": "string", + "enum": [ + "dart-2.15" + ], + "title": "dart-2.15" + }, + { + "type": "string", + "enum": [ + "dart-2.16" + ], + "title": "dart-2.16" + }, + { + "type": "string", + "enum": [ + "dart-2.17" + ], + "title": "dart-2.17" + }, + { + "type": "string", + "enum": [ + "dart-2.18" + ], + "title": "dart-2.18" + }, + { + "type": "string", + "enum": [ + "dart-2.19" + ], + "title": "dart-2.19" + }, + { + "type": "string", + "enum": [ + "dart-3.0" + ], + "title": "dart-3.0" + }, + { + "type": "string", + "enum": [ + "dart-3.1" + ], + "title": "dart-3.1" + }, + { + "type": "string", + "enum": [ + "dart-3.3" + ], + "title": "dart-3.3" + }, + { + "type": "string", + "enum": [ + "dart-3.5" + ], + "title": "dart-3.5" + }, + { + "type": "string", + "enum": [ + "dart-3.8" + ], + "title": "dart-3.8" + }, + { + "type": "string", + "enum": [ + "dart-3.9" + ], + "title": "dart-3.9" + }, + { + "type": "string", + "enum": [ + "dart-3.10" + ], + "title": "dart-3.10" + }, + { + "type": "string", + "enum": [ + "dart-3.11" + ], + "title": "dart-3.11" + }, + { + "type": "string", + "enum": [ + "dart-3.12" + ], + "title": "dart-3.12" + }, + { + "type": "string", + "enum": [ + "dotnet-6.0" + ], + "title": "dotnet-6.0" + }, + { + "type": "string", + "enum": [ + "dotnet-7.0" + ], + "title": "dotnet-7.0" + }, + { + "type": "string", + "enum": [ + "dotnet-8.0" + ], + "title": "dotnet-8.0" + }, + { + "type": "string", + "enum": [ + "dotnet-10" + ], + "title": "dotnet-10" + }, + { + "type": "string", + "enum": [ + "java-8.0" + ], + "title": "java-8.0" + }, + { + "type": "string", + "enum": [ + "java-11.0" + ], + "title": "java-11.0" + }, + { + "type": "string", + "enum": [ + "java-17.0" + ], + "title": "java-17.0" + }, + { + "type": "string", + "enum": [ + "java-18.0" + ], + "title": "java-18.0" + }, + { + "type": "string", + "enum": [ + "java-21.0" + ], + "title": "java-21.0" + }, + { + "type": "string", + "enum": [ + "java-22" + ], + "title": "java-22" + }, + { + "type": "string", + "enum": [ + "java-25" + ], + "title": "java-25" + }, + { + "type": "string", + "enum": [ + "swift-5.5" + ], + "title": "swift-5.5" + }, + { + "type": "string", + "enum": [ + "swift-5.8" + ], + "title": "swift-5.8" + }, + { + "type": "string", + "enum": [ + "swift-5.9" + ], + "title": "swift-5.9" + }, + { + "type": "string", + "enum": [ + "swift-5.10" + ], + "title": "swift-5.10" + }, + { + "type": "string", + "enum": [ + "swift-6.2" + ], + "title": "swift-6.2" + }, + { + "type": "string", + "enum": [ + "kotlin-1.6" + ], + "title": "kotlin-1.6" + }, + { + "type": "string", + "enum": [ + "kotlin-1.8" + ], + "title": "kotlin-1.8" + }, + { + "type": "string", + "enum": [ + "kotlin-1.9" + ], + "title": "kotlin-1.9" + }, + { + "type": "string", + "enum": [ + "kotlin-2.0" + ], + "title": "kotlin-2.0" + }, + { + "type": "string", + "enum": [ + "kotlin-2.3" + ], + "title": "kotlin-2.3" + }, + { + "type": "string", + "enum": [ + "cpp-17" + ], + "title": "cpp-17" + }, + { + "type": "string", + "enum": [ + "cpp-20" + ], + "title": "cpp-20" + }, + { + "type": "string", + "enum": [ + "bun-1.0" + ], + "title": "bun-1.0" + }, + { + "type": "string", + "enum": [ + "bun-1.1" + ], + "title": "bun-1.1" + }, + { + "type": "string", + "enum": [ + "bun-1.2" + ], + "title": "bun-1.2" + }, + { + "type": "string", + "enum": [ + "bun-1.3" + ], + "title": "bun-1.3" + }, + { + "type": "string", + "enum": [ + "bun-1.4" + ], + "title": "bun-1.4" + }, + { + "type": "string", + "enum": [ + "go-1.23" + ], + "title": "go-1.23" + }, + { + "type": "string", + "enum": [ + "go-1.24" + ], + "title": "go-1.24" + }, + { + "type": "string", + "enum": [ + "go-1.25" + ], + "title": "go-1.25" + }, + { + "type": "string", + "enum": [ + "go-1.26" + ], + "title": "go-1.26" + }, + { + "type": "string", + "enum": [ + "rust-1.83" + ], + "title": "rust-1.83" + }, + { + "type": "string", + "enum": [ + "static-1" + ], + "title": "static-1" + }, + { + "type": "string", + "enum": [ + "flutter-3.24" + ], + "title": "flutter-3.24" + }, + { + "type": "string", + "enum": [ + "flutter-3.27" + ], + "title": "flutter-3.27" + }, + { + "type": "string", + "enum": [ + "flutter-3.29" + ], + "title": "flutter-3.29" + }, + { + "type": "string", + "enum": [ + "flutter-3.32" + ], + "title": "flutter-3.32" + }, + { + "type": "string", + "enum": [ + "flutter-3.35" + ], + "title": "flutter-3.35" + }, + { + "type": "string", + "enum": [ + "flutter-3.38" + ], + "title": "flutter-3.38" + }, + { + "type": "string", + "enum": [ + "flutter-3.41" + ], + "title": "flutter-3.41" + }, + { + "type": "string", + "enum": [ + "flutter-3.44" + ], + "title": "flutter-3.44" + } + ] + }, + "default": [] + }, + "in": "query" + }, + { + "name": "useCases", + "description": "List of use cases allowed for filtering function templates. Maximum of 100 use cases are allowed.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "FunctionTemplateUseCase", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "starter" + ], + "title": "starter" + }, + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "ai" + ], + "title": "ai" + }, + { + "type": "string", + "enum": [ + "messaging" + ], + "title": "messaging" + }, + { + "type": "string", + "enum": [ + "utilities" + ], + "title": "utilities" + }, + { + "type": "string", + "enum": [ + "dev-tools" + ], + "title": "dev-tools" + }, + { + "type": "string", + "enum": [ + "auth" + ], + "title": "auth" + } + ] + }, + "default": [] + }, + "in": "query" + }, + { + "name": "limit", + "description": "Limit the number of templates returned in the response. Default limit is 25, and maximum limit is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Offset the list of returned templates. Maximum offset is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/functions\/templates\/{templateId}": { + "get": { + "summary": "Get function template", + "operationId": "functionsGetTemplate", + "tags": [ + "functions" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/templateFunction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "templates", + "demo": "functions\/get-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "templateId", + "description": "Template ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/functions\/{functionId}": { + "get": { + "summary": "Get function", + "operationId": "functionsGet", + "tags": [ + "functions" + ], + "description": "Get a function by its unique ID.", + "responses": { + "200": { + "description": "Function", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/function" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update function", + "operationId": "functionsUpdate", + "tags": [ + "functions" + ], + "description": "Update function by its unique ID.", + "responses": { + "200": { + "description": "Function", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/function" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Function name. Max length: 128 chars.", + "type": "string", + "example": "" + }, + "runtime": { + "description": "Execution runtime.", + "type": "string", + "default": "", + "example": "node-14.5", + "title": "Runtime", + "oneOf": [ + { + "type": "string", + "enum": [ + "node-14.5" + ], + "title": "node-14.5" + }, + { + "type": "string", + "enum": [ + "node-16.0" + ], + "title": "node-16.0" + }, + { + "type": "string", + "enum": [ + "node-18.0" + ], + "title": "node-18.0" + }, + { + "type": "string", + "enum": [ + "node-19.0" + ], + "title": "node-19.0" + }, + { + "type": "string", + "enum": [ + "node-20.0" + ], + "title": "node-20.0" + }, + { + "type": "string", + "enum": [ + "node-21.0" + ], + "title": "node-21.0" + }, + { + "type": "string", + "enum": [ + "node-22" + ], + "title": "node-22" + }, + { + "type": "string", + "enum": [ + "node-23" + ], + "title": "node-23" + }, + { + "type": "string", + "enum": [ + "node-24" + ], + "title": "node-24" + }, + { + "type": "string", + "enum": [ + "node-25" + ], + "title": "node-25" + }, + { + "type": "string", + "enum": [ + "node-26" + ], + "title": "node-26" + }, + { + "type": "string", + "enum": [ + "php-8.0" + ], + "title": "php-8.0" + }, + { + "type": "string", + "enum": [ + "php-8.1" + ], + "title": "php-8.1" + }, + { + "type": "string", + "enum": [ + "php-8.2" + ], + "title": "php-8.2" + }, + { + "type": "string", + "enum": [ + "php-8.3" + ], + "title": "php-8.3" + }, + { + "type": "string", + "enum": [ + "php-8.4" + ], + "title": "php-8.4" + }, + { + "type": "string", + "enum": [ + "ruby-3.0" + ], + "title": "ruby-3.0" + }, + { + "type": "string", + "enum": [ + "ruby-3.1" + ], + "title": "ruby-3.1" + }, + { + "type": "string", + "enum": [ + "ruby-3.2" + ], + "title": "ruby-3.2" + }, + { + "type": "string", + "enum": [ + "ruby-3.3" + ], + "title": "ruby-3.3" + }, + { + "type": "string", + "enum": [ + "ruby-3.4" + ], + "title": "ruby-3.4" + }, + { + "type": "string", + "enum": [ + "ruby-4.0" + ], + "title": "ruby-4.0" + }, + { + "type": "string", + "enum": [ + "python-3.8" + ], + "title": "python-3.8" + }, + { + "type": "string", + "enum": [ + "python-3.9" + ], + "title": "python-3.9" + }, + { + "type": "string", + "enum": [ + "python-3.10" + ], + "title": "python-3.10" + }, + { + "type": "string", + "enum": [ + "python-3.11" + ], + "title": "python-3.11" + }, + { + "type": "string", + "enum": [ + "python-3.12" + ], + "title": "python-3.12" + }, + { + "type": "string", + "enum": [ + "python-3.13" + ], + "title": "python-3.13" + }, + { + "type": "string", + "enum": [ + "python-3.14" + ], + "title": "python-3.14" + }, + { + "type": "string", + "enum": [ + "python-ml-3.11" + ], + "title": "python-ml-3.11" + }, + { + "type": "string", + "enum": [ + "python-ml-3.12" + ], + "title": "python-ml-3.12" + }, + { + "type": "string", + "enum": [ + "python-ml-3.13" + ], + "title": "python-ml-3.13" + }, + { + "type": "string", + "enum": [ + "deno-1.21" + ], + "title": "deno-1.21" + }, + { + "type": "string", + "enum": [ + "deno-1.24" + ], + "title": "deno-1.24" + }, + { + "type": "string", + "enum": [ + "deno-1.35" + ], + "title": "deno-1.35" + }, + { + "type": "string", + "enum": [ + "deno-1.40" + ], + "title": "deno-1.40" + }, + { + "type": "string", + "enum": [ + "deno-1.46" + ], + "title": "deno-1.46" + }, + { + "type": "string", + "enum": [ + "deno-2.0" + ], + "title": "deno-2.0" + }, + { + "type": "string", + "enum": [ + "deno-2.5" + ], + "title": "deno-2.5" + }, + { + "type": "string", + "enum": [ + "deno-2.6" + ], + "title": "deno-2.6" + }, + { + "type": "string", + "enum": [ + "dart-2.15" + ], + "title": "dart-2.15" + }, + { + "type": "string", + "enum": [ + "dart-2.16" + ], + "title": "dart-2.16" + }, + { + "type": "string", + "enum": [ + "dart-2.17" + ], + "title": "dart-2.17" + }, + { + "type": "string", + "enum": [ + "dart-2.18" + ], + "title": "dart-2.18" + }, + { + "type": "string", + "enum": [ + "dart-2.19" + ], + "title": "dart-2.19" + }, + { + "type": "string", + "enum": [ + "dart-3.0" + ], + "title": "dart-3.0" + }, + { + "type": "string", + "enum": [ + "dart-3.1" + ], + "title": "dart-3.1" + }, + { + "type": "string", + "enum": [ + "dart-3.3" + ], + "title": "dart-3.3" + }, + { + "type": "string", + "enum": [ + "dart-3.5" + ], + "title": "dart-3.5" + }, + { + "type": "string", + "enum": [ + "dart-3.8" + ], + "title": "dart-3.8" + }, + { + "type": "string", + "enum": [ + "dart-3.9" + ], + "title": "dart-3.9" + }, + { + "type": "string", + "enum": [ + "dart-3.10" + ], + "title": "dart-3.10" + }, + { + "type": "string", + "enum": [ + "dart-3.11" + ], + "title": "dart-3.11" + }, + { + "type": "string", + "enum": [ + "dart-3.12" + ], + "title": "dart-3.12" + }, + { + "type": "string", + "enum": [ + "dotnet-6.0" + ], + "title": "dotnet-6.0" + }, + { + "type": "string", + "enum": [ + "dotnet-7.0" + ], + "title": "dotnet-7.0" + }, + { + "type": "string", + "enum": [ + "dotnet-8.0" + ], + "title": "dotnet-8.0" + }, + { + "type": "string", + "enum": [ + "dotnet-10" + ], + "title": "dotnet-10" + }, + { + "type": "string", + "enum": [ + "java-8.0" + ], + "title": "java-8.0" + }, + { + "type": "string", + "enum": [ + "java-11.0" + ], + "title": "java-11.0" + }, + { + "type": "string", + "enum": [ + "java-17.0" + ], + "title": "java-17.0" + }, + { + "type": "string", + "enum": [ + "java-18.0" + ], + "title": "java-18.0" + }, + { + "type": "string", + "enum": [ + "java-21.0" + ], + "title": "java-21.0" + }, + { + "type": "string", + "enum": [ + "java-22" + ], + "title": "java-22" + }, + { + "type": "string", + "enum": [ + "java-25" + ], + "title": "java-25" + }, + { + "type": "string", + "enum": [ + "swift-5.5" + ], + "title": "swift-5.5" + }, + { + "type": "string", + "enum": [ + "swift-5.8" + ], + "title": "swift-5.8" + }, + { + "type": "string", + "enum": [ + "swift-5.9" + ], + "title": "swift-5.9" + }, + { + "type": "string", + "enum": [ + "swift-5.10" + ], + "title": "swift-5.10" + }, + { + "type": "string", + "enum": [ + "swift-6.2" + ], + "title": "swift-6.2" + }, + { + "type": "string", + "enum": [ + "kotlin-1.6" + ], + "title": "kotlin-1.6" + }, + { + "type": "string", + "enum": [ + "kotlin-1.8" + ], + "title": "kotlin-1.8" + }, + { + "type": "string", + "enum": [ + "kotlin-1.9" + ], + "title": "kotlin-1.9" + }, + { + "type": "string", + "enum": [ + "kotlin-2.0" + ], + "title": "kotlin-2.0" + }, + { + "type": "string", + "enum": [ + "kotlin-2.3" + ], + "title": "kotlin-2.3" + }, + { + "type": "string", + "enum": [ + "cpp-17" + ], + "title": "cpp-17" + }, + { + "type": "string", + "enum": [ + "cpp-20" + ], + "title": "cpp-20" + }, + { + "type": "string", + "enum": [ + "bun-1.0" + ], + "title": "bun-1.0" + }, + { + "type": "string", + "enum": [ + "bun-1.1" + ], + "title": "bun-1.1" + }, + { + "type": "string", + "enum": [ + "bun-1.2" + ], + "title": "bun-1.2" + }, + { + "type": "string", + "enum": [ + "bun-1.3" + ], + "title": "bun-1.3" + }, + { + "type": "string", + "enum": [ + "bun-1.4" + ], + "title": "bun-1.4" + }, + { + "type": "string", + "enum": [ + "go-1.23" + ], + "title": "go-1.23" + }, + { + "type": "string", + "enum": [ + "go-1.24" + ], + "title": "go-1.24" + }, + { + "type": "string", + "enum": [ + "go-1.25" + ], + "title": "go-1.25" + }, + { + "type": "string", + "enum": [ + "go-1.26" + ], + "title": "go-1.26" + }, + { + "type": "string", + "enum": [ + "rust-1.83" + ], + "title": "rust-1.83" + }, + { + "type": "string", + "enum": [ + "static-1" + ], + "title": "static-1" + }, + { + "type": "string", + "enum": [ + "flutter-3.24" + ], + "title": "flutter-3.24" + }, + { + "type": "string", + "enum": [ + "flutter-3.27" + ], + "title": "flutter-3.27" + }, + { + "type": "string", + "enum": [ + "flutter-3.29" + ], + "title": "flutter-3.29" + }, + { + "type": "string", + "enum": [ + "flutter-3.32" + ], + "title": "flutter-3.32" + }, + { + "type": "string", + "enum": [ + "flutter-3.35" + ], + "title": "flutter-3.35" + }, + { + "type": "string", + "enum": [ + "flutter-3.38" + ], + "title": "flutter-3.38" + }, + { + "type": "string", + "enum": [ + "flutter-3.41" + ], + "title": "flutter-3.41" + }, + { + "type": "string", + "enum": [ + "flutter-3.44" + ], + "title": "flutter-3.44" + } + ] + }, + "execute": { + "description": "An array of role strings with execution permissions. By default no user is granted with any execute permissions. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "type": "array", + "default": [], + "example": [ + "any" + ], + "items": { + "type": "string" + } + }, + "events": { + "description": "Events list. Maximum of 100 events are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string", + "default": "", + "example": "0 0 * * *" + }, + "timeout": { + "description": "Maximum execution time in seconds.", + "type": "integer", + "default": 15, + "example": 1, + "format": "int32" + }, + "enabled": { + "description": "Is function enabled? When set to 'disabled', users cannot access the function but Server SDKs with and API key can still access the function. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "logging": { + "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "type": "boolean", + "default": true, + "example": false + }, + "entrypoint": { + "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", + "type": "string", + "default": "", + "example": "" + }, + "commands": { + "description": "Build Commands.", + "type": "string", + "default": "", + "example": "" + }, + "scopes": { + "description": "List of scopes allowed for API Key auto-generated for every execution. Maximum of 200 scopes are allowed.", + "type": "array", + "default": [], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + } + ] + } + }, + "installationId": { + "description": "Appwrite Installation ID for VCS (Version Controle System) deployment.", + "type": "string", + "default": "", + "example": "" + }, + "providerRepositoryId": { + "description": "Repository ID of the repo linked to the function", + "type": "string", + "example": "", + "nullable": true + }, + "providerBranch": { + "description": "Production branch for the repo linked to the function", + "type": "string", + "default": "", + "example": "" + }, + "providerSilentMode": { + "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests.", + "type": "boolean", + "default": false, + "example": false + }, + "providerRootDirectory": { + "description": "Path to function code in the linked repo.", + "type": "string", + "default": "", + "example": "" + }, + "providerBranches": { + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "providerPaths": { + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "buildSpecification": { + "description": "Build specification for the function deployments.", + "type": "string", + "example": "s-1vcpu-512mb", + "nullable": true + }, + "runtimeSpecification": { + "description": "Runtime specification for the function executions.", + "type": "string", + "example": "s-1vcpu-512mb", + "nullable": true + }, + "deploymentRetention": { + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete function", + "operationId": "functionsDelete", + "tags": [ + "functions" + ], + "description": "Delete a function by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/functions\/{functionId}\/deployment": { + "patch": { + "summary": "Update function's deployment", + "operationId": "functionsUpdateFunctionDeployment", + "tags": [ + "functions" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/function" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/update-function-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "description": "Deployment ID.", + "type": "string", + "example": "" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments": { + "get": { + "summary": "List deployments", + "operationId": "functionsListDeployments", + "tags": [ + "functions" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deploymentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/list-deployments.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "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: buildSize, sourceSize, totalSize, buildDuration, status, activate, type", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create deployment", + "operationId": "functionsCreateDeployment", + "tags": [ + "functions" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/create-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": true, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "entrypoint": { + "description": "Entrypoint File.", + "type": "string", + "example": "", + "nullable": true + }, + "commands": { + "description": "Build Commands.", + "type": "string", + "example": "", + "nullable": true + }, + "code": { + "description": "Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.", + "type": "string", + "format": "binary" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "example": false + } + }, + "required": [ + "code", + "activate" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments\/duplicate": { + "post": { + "summary": "Create duplicate deployment", + "operationId": "functionsCreateDuplicateDeployment", + "tags": [ + "functions" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/create-duplicate-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "description": "Deployment ID.", + "type": "string", + "example": "" + }, + "buildId": { + "description": "Build unique ID.", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments\/template": { + "post": { + "summary": "Create template deployment", + "operationId": "functionsCreateTemplateDeployment", + "tags": [ + "functions" + ], + "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/products\/functions\/templates) to find the template details.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/create-template-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "repository": { + "description": "Repository name of the template.", + "type": "string", + "example": "" + }, + "owner": { + "description": "The name of the owner of the template.", + "type": "string", + "example": "" + }, + "rootDirectory": { + "description": "Path to function code in the template repo.", + "type": "string", + "example": "" + }, + "type": { + "description": "Type for the reference provided. Can be commit, branch, or tag", + "type": "string", + "example": "commit", + "title": "TemplateReferenceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "commit" + ], + "title": "commit" + }, + { + "type": "string", + "enum": [ + "branch" + ], + "title": "branch" + }, + { + "type": "string", + "enum": [ + "tag" + ], + "title": "tag" + } + ] + }, + "reference": { + "description": "Reference value, can be a commit hash, branch name, or release tag", + "type": "string", + "example": "" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "repository", + "owner", + "rootDirectory", + "type", + "reference" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments\/vcs": { + "post": { + "summary": "Create VCS deployment", + "operationId": "functionsCreateVcsDeployment", + "tags": [ + "functions" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/create-vcs-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Type of reference passed. Allowed values are: branch, commit", + "type": "string", + "example": "branch", + "title": "VCSReferenceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "branch" + ], + "title": "branch" + }, + { + "type": "string", + "enum": [ + "commit" + ], + "title": "commit" + } + ] + }, + "reference": { + "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", + "type": "string", + "example": "" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "type", + "reference" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments\/{deploymentId}": { + "get": { + "summary": "Get deployment", + "operationId": "functionsGetDeployment", + "tags": [ + "functions" + ], + "description": "Get a function deployment by its unique ID.", + "responses": { + "200": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/get-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete deployment", + "operationId": "functionsDeleteDeployment", + "tags": [ + "functions" + ], + "description": "Delete a code deployment by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/delete-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/functions\/{functionId}\/deployments\/{deploymentId}\/download": { + "get": { + "summary": "Get deployment download", + "operationId": "functionsGetDeploymentDownload", + "tags": [ + "functions" + ], + "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", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/get-deployment-download.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "public", + "functions.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [], + "ImpersonateUserId": [] + }, + "server": { + "Project": [], + "Key": [], + "ImpersonateUserId": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "type", + "description": "Deployment file to download. Can be: \"source\", \"output\".", + "required": false, + "schema": { + "type": "string", + "example": "source", + "title": "DeploymentDownloadType", + "oneOf": [ + { + "type": "string", + "enum": [ + "source" + ], + "title": "source" + }, + { + "type": "string", + "enum": [ + "output" + ], + "title": "output" + } + ], + "default": "source" + }, + "in": "query" + }, + { + "name": "token", + "description": "Presigned source-download token for accessing this deployment without a session (jobs-service).", + "required": false, + "schema": { + "type": "string", + "example": "", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/functions\/{functionId}\/deployments\/{deploymentId}\/status": { + "patch": { + "summary": "Update deployment status", + "operationId": "functionsUpdateDeploymentStatus", + "tags": [ + "functions" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/update-deployment-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/functions\/{functionId}\/executions": { + "get": { + "summary": "List executions", + "operationId": "functionsListExecutions", + "tags": [ + "functions" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/executionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/list-executions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.read", + "execution.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "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: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create execution", + "operationId": "functionsCreateExecution", + "tags": [ + "functions" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/execution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/create-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.write", + "execution.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "description": "HTTP body of execution. Default value is empty string.", + "type": "string", + "default": "", + "example": "" + }, + "async": { + "description": "Execute code in the background. Default value is false.", + "type": "boolean", + "default": false, + "example": false + }, + "path": { + "description": "HTTP path of execution. Path can include query params. Default value is \/", + "type": "string", + "default": "\/", + "example": "" + }, + "method": { + "description": "HTTP method of execution. Default value is POST.", + "type": "string", + "default": "POST", + "example": "GET", + "title": "ExecutionMethod", + "oneOf": [ + { + "type": "string", + "enum": [ + "GET" + ], + "title": "GET" + }, + { + "type": "string", + "enum": [ + "POST" + ], + "title": "POST" + }, + { + "type": "string", + "enum": [ + "PUT" + ], + "title": "PUT" + }, + { + "type": "string", + "enum": [ + "PATCH" + ], + "title": "PATCH" + }, + { + "type": "string", + "enum": [ + "DELETE" + ], + "title": "DELETE" + }, + { + "type": "string", + "enum": [ + "OPTIONS" + ], + "title": "OPTIONS" + }, + { + "type": "string", + "enum": [ + "HEAD" + ], + "title": "HEAD" + } + ] + }, + "headers": { + "description": "HTTP headers of execution. Defaults to empty.", + "type": "object", + "default": [], + "example": {} + }, + "scheduledAt": { + "description": "Scheduled execution time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future with precision in minutes.", + "type": "string", + "example": "", + "nullable": true + } + } + } + } + } + } + } + }, + "\/functions\/{functionId}\/executions\/{executionId}": { + "get": { + "summary": "Get execution", + "operationId": "functionsGetExecution", + "tags": [ + "functions" + ], + "description": "Get a function execution log by its unique ID.", + "responses": { + "200": { + "description": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/execution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/get-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.read", + "execution.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "executionId", + "description": "Execution ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete execution", + "operationId": "functionsDeleteExecution", + "tags": [ + "functions" + ], + "description": "Delete a function execution by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/delete-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.write", + "execution.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "executionId", + "description": "Execution ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/functions\/{functionId}\/variables": { + "get": { + "summary": "List variables", + "operationId": "functionsListVariables", + "tags": [ + "functions" + ], + "description": "Get a list of all variables of a specific function.", + "responses": { + "200": { + "description": "Variables List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variableList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/list-variables.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "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: key, resourceType, resourceId, secret", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create variable", + "operationId": "functionsCreateVariable", + "tags": [ + "functions" + ], + "description": "Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.", + "responses": { + "201": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/create-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "variableId": { + "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "" + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "" + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "variableId", + "key", + "value" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/variables\/{variableId}": { + "get": { + "summary": "Get variable", + "operationId": "functionsGetVariable", + "tags": [ + "functions" + ], + "description": "Get a variable by its unique ID.", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/get-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update variable", + "operationId": "functionsUpdateVariable", + "tags": [ + "functions" + ], + "description": "Update variable by its unique ID.", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/update-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "", + "nullable": true + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "", + "nullable": true + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete variable", + "operationId": "functionsDeleteVariable", + "tags": [ + "functions" + ], + "description": "Delete a variable by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/delete-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/graphql": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlQuery", + "tags": [ + "graphql" + ], + "description": "Execute a GraphQL mutation.", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "graphql", + "demo": "graphql\/query.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "graphql", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + }, + "client": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "description": "The query or queries to execute.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "query" + ] + } + } + } + } + } + }, + "\/graphql\/mutation": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlMutation", + "tags": [ + "graphql" + ], + "description": "Execute a GraphQL mutation.", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "graphql", + "demo": "graphql\/mutation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "graphql", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + }, + "client": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "description": "The query or queries to execute.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "query" + ] + } + } + } + } + } + }, + "\/growth\/installations": { + "post": { + "summary": "Create or update a self-hosted installation record", + "operationId": "growthCreateInstallation", + "tags": [ + "growth" + ], + "description": "Create or update a self-hosted installation record.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "growth\/create-installation.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "manager" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "manager": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "Admin email from the installation.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "name": { + "description": "Admin name.", + "type": "string", + "default": "", + "example": "" + }, + "version": { + "description": "Appwrite version.", + "type": "string", + "default": "", + "example": "" + }, + "domain": { + "description": "Installation domain.", + "type": "string", + "default": "", + "example": "" + }, + "database": { + "description": "Database adapter.", + "type": "string", + "default": "", + "example": "" + }, + "hostIp": { + "description": "Resolved installation host IP address.", + "type": "string", + "default": "", + "example": "" + }, + "userAgent": { + "description": "Installation user agent.", + "type": "string", + "default": "", + "example": "" + }, + "os": { + "description": "Installation operating system.", + "type": "string", + "default": "", + "example": "" + }, + "arch": { + "description": "Installation CPU architecture.", + "type": "string", + "default": "", + "example": "" + }, + "cpus": { + "description": "Installation CPU count.", + "type": "integer", + "format": "int32" + }, + "ram": { + "description": "Installation RAM in MB.", + "type": "integer", + "format": "int32" + } + }, + "required": [ + "email" + ] + } + } + } + } + } + }, + "\/locale": { + "get": { + "summary": "Get user locale", + "operationId": "localeGet", + "tags": [ + "locale" + ], + "description": "Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))", + "responses": { + "200": { + "description": "Locale", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/locale" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/locale\/codes": { + "get": { + "summary": "List locale codes", + "operationId": "localeListCodes", + "tags": [ + "locale" + ], + "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).", + "responses": { + "200": { + "description": "Locale codes list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/localeCodeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/locale\/continents": { + "get": { + "summary": "List continents", + "operationId": "localeListContinents", + "tags": [ + "locale" + ], + "description": "List of all continents. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Continents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/continentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-continents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/locale\/countries": { + "get": { + "summary": "List countries", + "operationId": "localeListCountries", + "tags": [ + "locale" + ], + "description": "List of all countries. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Countries List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/countryList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-countries.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/locale\/countries\/eu": { + "get": { + "summary": "List EU countries", + "operationId": "localeListCountriesEU", + "tags": [ + "locale" + ], + "description": "List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Countries List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/countryList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-countries-eu.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/locale\/countries\/phones": { + "get": { + "summary": "List countries phone codes", + "operationId": "localeListCountriesPhones", + "tags": [ + "locale" + ], + "description": "List of all countries phone codes. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Phones List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/phoneList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-countries-phones.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/locale\/currencies": { + "get": { + "summary": "List currencies", + "operationId": "localeListCurrencies", + "tags": [ + "locale" + ], + "description": "List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Currencies List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/currencyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-currencies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/locale\/languages": { + "get": { + "summary": "List languages", + "operationId": "localeListLanguages", + "tags": [ + "locale" + ], + "description": "List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.", + "responses": { + "200": { + "description": "Languages List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/languageList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-languages.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/manager\/blocks": { + "post": { + "summary": "Create a new resource block for a project", + "operationId": "managerCreateBlock", + "tags": [ + "manager" + ], + "description": "Creates a new resource block.", + "responses": { + "201": { + "description": "Block", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/block" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "manager\/create-block.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager", + "console" + ], + "packaging": false, + "public": true + }, + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "projectId": { + "description": "Project ID", + "type": "string", + "example": "" + }, + "resourceType": { + "description": "Resource type to block (e.g., projects, functions, databases, storage, etc.)", + "type": "string", + "example": "projects", + "title": "BlockResourceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "projects" + ], + "title": "projects" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + }, + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "buckets" + ], + "title": "buckets" + }, + { + "type": "string", + "enum": [ + "providers" + ], + "title": "providers" + }, + { + "type": "string", + "enum": [ + "topics" + ], + "title": "topics" + }, + { + "type": "string", + "enum": [ + "subscribers" + ], + "title": "subscribers" + }, + { + "type": "string", + "enum": [ + "messages" + ], + "title": "messages" + } + ] + }, + "resourceId": { + "description": "Optional resource ID (if omitted, all resources of this type will be blocked)", + "type": "string", + "default": "", + "example": "" + }, + "mode": { + "description": "Block mode. Use full to block reads and writes, or readOnly to block database writes only.", + "type": "string", + "default": "full", + "example": "full", + "title": "BlockMode", + "oneOf": [ + { + "type": "string", + "enum": [ + "full" + ], + "title": "full" + }, + { + "type": "string", + "enum": [ + "readonly" + ], + "title": "readonly" + } + ] + }, + "reason": { + "description": "Optional reason why the resource is blocked", + "type": "string", + "default": "", + "example": "" + }, + "expiredAt": { + "description": "Optional expiration date for the block", + "type": "string", + "default": "", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + } + }, + "required": [ + "projectId", + "resourceType" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete resource blocks for a project", + "operationId": "managerDeleteBlock", + "tags": [ + "manager" + ], + "description": "Deletes resource blocks for a project.", + "responses": { + "200": { + "description": "BlockDelete", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/blockDelete" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "manager\/delete-block.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager", + "console" + ], + "packaging": false, + "public": true + }, + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "query" + }, + { + "name": "resourceType", + "description": "Resource type to unblock", + "required": true, + "schema": { + "type": "string", + "example": "projects", + "title": "BlockResourceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "projects" + ], + "title": "projects" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + }, + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "buckets" + ], + "title": "buckets" + }, + { + "type": "string", + "enum": [ + "providers" + ], + "title": "providers" + }, + { + "type": "string", + "enum": [ + "topics" + ], + "title": "topics" + }, + { + "type": "string", + "enum": [ + "subscribers" + ], + "title": "subscribers" + }, + { + "type": "string", + "enum": [ + "messages" + ], + "title": "messages" + } + ] + }, + "in": "query" + }, + { + "name": "resourceId", + "description": "Optional resource ID (if omitted, all blocks of this type will be removed)", + "required": false, + "schema": { + "type": "string", + "example": "", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/manager\/blocks\/{projectId}": { + "get": { + "summary": "List all resource blocks for a project", + "operationId": "managerListBlocks", + "tags": [ + "manager" + ], + "description": "Lists all resource blocks for a project.", + "responses": { + "200": { + "description": "Blocks list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/blockList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "manager\/list-blocks.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager", + "console" + ], + "packaging": false, + "public": true + }, + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + } + }, + "\/manager\/cache": { + "delete": { + "summary": "Clear internal cache", + "operationId": "managerDeleteCache", + "tags": [ + "manager" + ], + "description": "Clears internal cache.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "cache", + "demo": "manager\/delete-cache.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager", + "console" + ], + "packaging": false, + "public": true + }, + "parameters": [ + { + "name": "region", + "description": "Target region.", + "required": false, + "schema": { + "type": "string", + "example": "fra", + "title": "Region", + "oneOf": [ + { + "type": "string", + "enum": [ + "fra" + ], + "title": "fra" + }, + { + "type": "string", + "enum": [ + "nyc" + ], + "title": "nyc" + }, + { + "type": "string", + "enum": [ + "syd" + ], + "title": "syd" + }, + { + "type": "string", + "enum": [ + "sfo" + ], + "title": "sfo" + }, + { + "type": "string", + "enum": [ + "sgp" + ], + "title": "sgp" + }, + { + "type": "string", + "enum": [ + "tor" + ], + "title": "tor" + } + ] + }, + "in": "query" + }, + { + "name": "cache", + "description": "Cache target.", + "required": false, + "schema": { + "type": "string", + "example": "cache", + "title": "CacheTarget", + "oneOf": [ + { + "type": "string", + "enum": [ + "cache" + ], + "title": "cache" + }, + { + "type": "string", + "enum": [ + "timelimit" + ], + "title": "timelimit" + }, + { + "type": "string", + "enum": [ + "locks" + ], + "title": "locks" + }, + { + "type": "string", + "enum": [ + "pubsub" + ], + "title": "pubsub" + }, + { + "type": "string", + "enum": [ + "queue" + ], + "title": "queue" + }, + { + "type": "string", + "enum": [ + "all" + ], + "title": "all" + } + ], + "default": "cache" + }, + "in": "query" + }, + { + "name": "all", + "description": "Clear the entire selected cache target.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": false + }, + "in": "query" + }, + { + "name": "database", + "description": "Database cache scope.", + "required": false, + "schema": { + "type": "string", + "example": "console", + "title": "CacheDatabase", + "oneOf": [ + { + "type": "string", + "enum": [ + "console" + ], + "title": "console" + }, + { + "type": "string", + "enum": [ + "project" + ], + "title": "project" + }, + { + "type": "string", + "enum": [ + "logs" + ], + "title": "logs" + } + ], + "default": "console" + }, + "in": "query" + }, + { + "name": "projectId", + "description": "Project ID for project or logs database cache.", + "required": false, + "schema": { + "type": "string", + "example": "", + "default": "" + }, + "in": "query" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": false, + "schema": { + "type": "string", + "example": "", + "default": "" + }, + "in": "query" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": false, + "schema": { + "type": "string", + "example": "", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/manager\/database\/{databaseId}": { + "patch": { + "summary": "Update database status (used by Edge)", + "operationId": "managerUpdateDatabase", + "tags": [ + "manager" + ], + "description": "Update database container status after Edge spindown.\nCalled by Edge scheduler to notify Cloud of status changes.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "databases", + "demo": "manager\/update-database.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ] + }, + "parameters": [ + { + "name": "databaseId", + "description": "Database ID", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "containerStatus": { + "description": "Container status", + "type": "string", + "example": "active" + }, + "projectId": { + "description": "Project ID scoping this tenant-owned database", + "type": "string", + "default": "", + "example": "" + } + }, + "required": [ + "containerStatus" + ] + } + } + } + } + } + }, + "\/manager\/databases\/activity": { + "post": { + "summary": "Sync database last-active timestamps in bulk", + "operationId": "managerCreateDatabaseActivity", + "tags": [ + "manager" + ], + "description": "Sync last-active timestamps for shared and dedicated databases in bulk.\nCalled periodically by Edge from its in-memory activity cache. Each entry\ncarries a databaseId, the most recent Unix timestamp at which the database\nserved traffic, and optionally a tenantId scoping the update to one project.\nCloud advances the runtime document's lastAccessedAt monotonically \u2014 an older\ntimestamp never regresses a newer one \u2014 and unknown databases are skipped.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "databases", + "demo": "manager\/create-database-activity.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ] + }, + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databases": { + "description": "Activity entries, each `{databaseId, lastActive, tenantId?}`.", + "type": "array", + "items": { + "type": "object" + } + } + }, + "required": [ + "databases" + ] + } + } + } + } + } + }, + "\/manager\/databases\/metrics": { + "post": { + "summary": "Submit database metrics in bulk", + "operationId": "managerCreateDatabaseMetrics", + "tags": [ + "manager" + ], + "description": "Submit resource metrics for dedicated databases in bulk. Called periodically\nby Edge after aggregating pushes from in-pod metrics agents. Accepts both\ngauge values (cpu%, memory%, storage, connections, qps, iops) and counter\ndeltas (inbound\/outbound bytes, cpu milliseconds) which edge has already computed\nagainst previous-value caches in Redis.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "databases", + "demo": "manager\/create-database-metrics.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ] + }, + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "projectIds": { + "description": "Project IDs (parallel array).", + "type": "array", + "items": { + "type": "string" + } + }, + "databaseIds": { + "description": "Database IDs (parallel array).", + "type": "array", + "items": { + "type": "string" + } + }, + "ordinals": { + "description": "StatefulSet pod ordinals (parallel array). A stable per-node identity, not a role: ordinal 0 is the first member created, and a failover can leave the primary on any ordinal. Carried on each gauge and on the resource sample as its ordinal dimension so per-node series stay distinct. Empty defaults every sample to ordinal 0.", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + }, + "cpuPercents": { + "description": "CPU usage percentages.", + "type": "array", + "default": [], + "items": { + "type": "number", + "format": "double" + } + }, + "memoryPercents": { + "description": "Memory usage percentages.", + "type": "array", + "default": [], + "items": { + "type": "number", + "format": "double" + } + }, + "storageUsedBytes": { + "description": "Storage used in bytes.", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + }, + "connectionsActive": { + "description": "Active connection counts.", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + }, + "qps": { + "description": "Queries per second.", + "type": "array", + "default": [], + "items": { + "type": "number", + "format": "double" + } + }, + "iopsRead": { + "description": "Read IOPS.", + "type": "array", + "default": [], + "items": { + "type": "number", + "format": "double" + } + }, + "iopsWrite": { + "description": "Write IOPS.", + "type": "array", + "default": [], + "items": { + "type": "number", + "format": "double" + } + }, + "inboundBytesDeltas": { + "description": "Inbound network bytes since previous sample.", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + }, + "outboundBytesDeltas": { + "description": "Outbound network bytes since previous sample.", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + }, + "cpuMillisecondsDeltas": { + "description": "CPU time in milliseconds since previous sample.", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + } + }, + "required": [ + "projectIds", + "databaseIds" + ] + } + } + } + } + } + }, + "\/manager\/databases\/{databaseId}\/event": { + "post": { + "summary": "Create a database lifecycle event", + "operationId": "managerCreateDatabaseEvent", + "tags": [ + "manager" + ], + "description": "Creates a database lifecycle event for webhook, function, and realtime delivery, or\nexecutes command events such as start and spin-down.\nCalled by Edge to notify Cloud of database lifecycle changes such as provisioning,\nfailover, backup completion, etc.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "databases", + "demo": "manager\/create-database-event.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ] + }, + "parameters": [ + { + "name": "databaseId", + "description": "Database ID", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "event": { + "description": "Event name (e.g. start, spin-down, provision.completed, failover.completed). Customer delivery is the matching resource create\/update\/delete, not this opcode.", + "type": "string", + "example": "" + }, + "data": { + "description": "Additional event data. Start events may include projectId to scope tenant-reused database IDs.", + "type": "object", + "default": [], + "example": {} + } + }, + "required": [ + "event" + ] + } + } + } + } + } + }, + "\/manager\/domain": { + "get": { + "summary": "Find the DNS details for given domain.", + "operationId": "managerGetDomain", + "tags": [ + "manager" + ], + "description": "Retrieves DNS details for a given domain.", + "responses": { + "200": { + "description": "ManagerDomain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/managerDomain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "manager\/get-domain.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager" + ], + "packaging": false, + "public": true + }, + "parameters": [ + { + "name": "domain", + "description": "Domain name", + "required": true, + "schema": { + "type": "string", + "example": "example.com" + }, + "in": "query" + } + ] + } + }, + "\/manager\/domains\/records": { + "get": { + "summary": "Find the DNS details for given domain.", + "operationId": "managerGetDNSRecords", + "tags": [ + "manager" + ], + "description": "Retrieves DNS records for a given domain.", + "responses": { + "200": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "manager\/get-dns-records.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager" + ], + "packaging": false, + "public": true + }, + "parameters": [ + { + "name": "domain", + "description": "Domain name", + "required": true, + "schema": { + "type": "string", + "example": "example.com" + }, + "in": "query" + } + ] + } + }, + "\/manager\/domains\/{domain}\/zone": { + "get": { + "summary": "Retrieve the DNS zone file for the given domain.", + "operationId": "managerGetDomainZone", + "tags": [ + "manager" + ], + "description": "Retrieves the DNS zone file for a given domain.", + "responses": { + "200": { + "description": "Text", + "content": { + "text\/plain": { + "schema": { + "type": "string" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "manager\/get-domain-zone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager" + ], + "packaging": false, + "public": true + }, + "parameters": [ + { + "name": "domain", + "description": "Domain to retrieve the DNS zone file for.", + "required": true, + "schema": { + "type": "string", + "example": "example.com" + }, + "in": "path" + } + ] + } + }, + "\/manager\/events": { + "post": { + "summary": "Create a new event for the manager using CloudEvents specification", + "operationId": "managerCreateEvent", + "tags": [ + "manager" + ], + "description": "Creates a new event using CloudEvents specification for manager operations.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "manager\/create-event.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ] + }, + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "specversion": { + "description": "CloudEvents spec version", + "type": "string", + "default": "1.0", + "example": "" + }, + "type": { + "description": "Event type that maps to worker. e.g. v1-stats-usage", + "type": "string", + "example": "" + }, + "source": { + "description": "Event source. e.g. imagine", + "type": "string", + "default": "", + "example": "" + }, + "subject": { + "description": "Subject of the event, i.e. projectId", + "type": "string", + "example": "" + }, + "id": { + "description": "Unique event ID", + "type": "string", + "default": "", + "example": "" + }, + "time": { + "description": "Event timestamp in RFC3339 format", + "type": "string", + "default": "", + "example": "